iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
AI & Data

Apache NiFi - 讓你輕鬆設計 Data Pipeline系列 第 23

Day23 NiFi - NiFi API 的使用設定

NiFi 除了可以向 DB、Data Storage 存取資料之外,很多場景可能也需要接收 API 的資料或是發送 API,所以今天這篇來介紹一下 NiFi 如何去做到這件事情。此外,也會額外介紹 NiFi 本身的 API。

What is NiFi API?

我們除了可以透過 UI 來做設定之外,NiFi 本身也有提供 API 來做操作,根據 NiFi API 文件,我們可以透過 NiFi API 來設定 controller service, template, processor 等,但這樣的操作通常會比較複雜,主要是我們不確定設定出來的結果與狀況。

那你可能會問,那就不需要 NiFi API 了對嗎?其實也不盡然,以我的個人經驗,我比較常會用到 NiFi API 的場境是在做 Monitoring 的時候,還記得 Day12 NiFi - Reporting Task & Bulletin Board 這篇提到,當 NiFi 在監控時發現問題時,就會把訊息丟到 Bulletin Board,但往往這樣的訊息是不足夠去做描述的,所以我會做一個持續監聽相關 API 的 Piepeline,然後當有訊息出來時,再補上必要的資訊內容,最後才會發送到 Email 或是 Slack。

但原則上在 NiFi 上可以操作的動作,都有對應的 API,因為 NiFi 在 UI 上也是呼叫 API,所以可以再依據自己的情境來決定要採用哪一個 API。

How to use?

講完了 NiFi 本身的 API 了,那接下來要來介紹 NiFi 有哪些 Processor 是可以支援我們去對 API 做存取的操作,幫大家整理成下表:

Processors Introduction
GetHTTP 專只對下載內容相關的 API 做使用,類似 wget 指令
PostHTTP 專只對 POST 為 type 的 http method 來做使用
InvokeHTTP 該 Processor 可支援到更多 http method 的 API 使用,像是 PUT, DELETE, OPTIONS
ListenHTTP 通常會被用來作為一個監聽的 Processor,可以定期去向 API 發送 POST request,就會將結果產生 FlowFiles。

接著,帶大家來看一下 GetHTTP, PostHTTP, InvokeHTTP 常用的這三個 Processor 這當中是如何做設定的。

GetHTTP

我們都知道這一個下載檔案的 Processor,想像是就是類似於我們會透過 wget 的指令去做下載的意思,所以我拿 NiFi 的 Download URL 來做範例:

  • URL: 目標檔案的 URL (HTTP/HTTPS)。
  • Filename: 下載下來的 filename。
  • SSL Context Service: 如果 URL 為 HTTPS,則這邊要去設定 SSL 的 Controller Service。

PostHTTP

  • URL: 要執行 POST request 的 URL。

InvokeHTTP

  • HTTP Method: 這邊可以填入你要執行的 HTTP Method,就不僅拘限於 GET 和 POST。
  • Remote URL: 要執行的 API endpoint。

看到以上幾個設定,其實並不會太難,主要是 InvokeHTTP 這個 Processor 可能要稍微注意一下,正因為他支援多個 HTTP Method,所以你會發現他底下的 Property 參數很多,圖上只列出了一半,因此若要使用該 Processor 的話,記得還是搭配文件去做確認與設定,這樣才會比較好。

小總結

今天帶讀者們簡單暸解了一下 NiFi API 的文件與用途,以及如何透過 NiFi 來和 API 等 endpoint 來做一個操作設定,這部分確實我過去用的經驗偏少,可能能帶給大家的並不多,但我覺得在其他的應用場景仍會有用到的需求,尤其時企業內部本來就會有專屬自己的 API Endpoint,很多時候確實會需要這當中的資料交換,因次我還是介紹了這部分的主題,讓讀者們知道 NiFi 其實也可以做這樣的一件事情。

明天我會介紹 NiFi 是如何發布訊息到 Email 和 Slack,這對於在做一些資料或硬體監控時,這部分的處理是很有幫助的。

Reference


上一篇
Day22 NiFi - 與 GCP PubSub 對接設定
下一篇
Day24 NiFi 延伸應用 - Slack & Email
系列文
Apache NiFi - 讓你輕鬆設計 Data Pipeline30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言