Apache NiFi 是一個強大的數據流處理工具,通過其 REST API,用戶可以遠程管理和控制數據流處理器。本文將介紹如何使用 NiFi 1.25 版本HTTPS 模式下Rest API,包括獲取 token、獲取組件信息、啟動和停止組件、以及更改組件的調度頻率等操作。
1. Rest API 簡介及適用場景
NiFi 的 Rest API 允許用戶通過 HTTP 請求來管理和監控數據流處理器。這種靈活性使得用戶可以自動化工作流程、集成 NiFi 到其他系統中,或者創建定制化的管理界面。
適用場景:
-
自動化數據流的啟動和停止。
-
實時監控數據流處理器的狀態和性能指標。
-
動態地更新數據流處理器的配置。
2. 如何獲取 Token
在NiFi HTTPS模式下使用Rest API,需要進行身份驗證。通常使用 OAuth 2.0 的 Bearer Token 進行認證。
獲取 Token 的步驟:
-
配置NiFi的安全策略,確保Rest API可以通過 HTTPS 進行訪問。
-
使用用戶名和密碼或其他認證方式獲取 Bearer Token。這通常需要使用NiFi提供的身份驗證端點進行請求。
# 提示:這里是使用url進行演示。生產環境中,可以使用java實現類似請求。
# 要注意的是:用戶名密碼的安全性。如果使用spring微服務架構,可以將其配置到nacos中
curl -X POST \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=admin&password=mypassword123456' \
"https://ip:9443/nifi-api/access/token" --insecure
成功請求后,會返回一個token字符串。
3. 如何獲取組件信息
獲取 NiFi 中組件(如處理器)的信息是常見的操作,用于監控和配置調整。
獲取組件信息的示例:
使用的Rest API:
首先要拿到組件的ID,拼接到Rest API地址中:
其次,要將token放到請求頭,如下圖使用postman工具所示,注意:圖中返回json中的version值,后面要用到。
4. 如何啟動組件
啟動一個處于停止狀態的組件是日常操作之一。
啟動組件的示例如下,將下面的json放到截圖所示的body中:
{
"component": {
"id": "11af14aa-1afb-1215-c6e9-3fb8412b2731",
"state": "RUNNING"
},
"revision": {
"version": 22
}
}
5. 如何停止組件
停止一個正在運行的組件同樣重要。
停止組件的示例,將下面的json放到截圖所示的body中:???????
{
"component": {
"id": "11af14aa-1afb-1215-c6e9-3fb8412b2731",
"state": "STOPPED"
},
"revision": {
"version": 23
}
}
6. 如何更改一個組件的調度頻率
調整組件的調度頻率可以根據實際需求靈活配置。更改組件調度頻率之前,請先停止組件,更改頻率成功后,再啟動組件。
更改調度頻率的示例:
curl -X PUT 'https://ip:9443/nifi-api/processors/11af14aa-1afb-1215-c6e9-3fb8412b2731' -d '{ "revision": { "version": 25 }, "component": { "id": "11af14aa-1afb-1215-c6e9-3fb8412b2731", "config": { "schedulingPeriod": "6 min" } }}' -H "Content-Type: application/json" -H 'Authorization: Bearer eyJraWQiOiJjZmRhNmM2Yi0zY2FmLTQwYTctODQ3Ny1lMzVkMzA0MDdkYjciLCJhbGciOiJQUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImF1ZCI6Imh0dHBzOi8vbmlmaTo5NDQzIiwibmJmIjoxNzIwOTMwMjEyLCJpc3MiOiJodHRwczovL25pZmk6OTQ0MyIsImdyb3VwcyI6W10sInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzIwOTU5MDEyLCJpYXQiOjE3MjA5MzAyMTIsImp0aSI6ImQzMThiMzViLWUyYTUtNGI1Ny1iMzcyLTUwNGQ1ODU2Mjc2ZiJ9.ZBTEIaJEfoPn7riVBRfvRL0z1FoIE-3ISOPKFoQzkxck-ccQDZztgC9ZkOfnORKvBCPDsqss6VXR--TjoRsAao4Ymqm7uOdqcUfUF8rq50O0MlpchI0LhYo_T6SKQLaUtIiNOkEriF6vRzb19QDX4wEDjTZyO8tKQu5covgcIZ5qaDgD7J6jqR0XiEk3BBd5IZsJpQgBcy_j6qgo8bJTZI7oKWcZGuNzfXIQTb5iEKVPQIiQTEDHQaC8RtdxqPDDHe-YlbDykIXEJKc7QE6nZcd_sjDOtPNiNcTgFoOFA7jKBUXkBWkALpRTnyHrLFPLNSCQMDzn9xpJGgAc4etw8p0oLFOvCQlyega2t2qZRhZVH5JA_sYXTCFgUeq-u5iZUlBoW9Kc_25sefLy4A6eGYhe96E_q_8Dp5VT-Lt0NKXSug1-QUUJ-zTioL_nCbFkryutGkFLhh7z1i3x8Dq6mRJxavmYd8kkPtBUADucBb77EigS-Tas9Lwuto4a3BdNxQ3wiHspzsUnrCAw5dElN7m1-Gk5xP2FG_7bb7bb2cNU-1pkLZk3J4pUDm_YOUurC3X01qT7wwfSS52oZCdh6gtT8kylyHxdPRLZo3U8fl6Dvju0FlRW6NyZU53ND176EyzfL7JEshtFmOYB3W48gzhEtBi2m0-6GWljW-MQmEE' --compressed --insecure
7. 總結本文,指出后續示例
本文介紹了如何使用 NiFi1.25版本HTTPS模式下的 Rest API 進行基本操作,包括身份驗證、獲取組件信息、啟動和停止組件,以及修改組件的配置。通過這些操作,用戶可以更好地管理和控制NiFi中的數據流處理器。
建議進一步深入了解NiFi的 Rest API文檔和實際應用場景,以更好地利用其強大的管理和控制能力。
通過這些示例和操作,希望讀者能夠快速上手NiFi的RestAPI,并在實際應用中發揮其優勢。
NiFI工具學起來,沒那么難,用起來真的很絲滑。為自己的NiFi視頻教程做個廣告:https://edu.csdn.net/course/detail/38508