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


<<:  # Day23--从广场到仓库,原来add跟commit是这样!

>>:  Day24|【Git】认识 git tag 标签常用指令、标签与分支的差异

Day 26: Insertion sort & Selection sort

我们先来用insertion sort algorithm来解题。 虽然他的效率也不高,但这是很好理...

口罩脸孔资料集的上传

在范例四的说明中, 我们已下载伊甸基金会释出的口罩脸孔资料集, 我们预计使用这个资料集进行训练、产生...

Youtube Analytics API 教学 - OAuth2.0 开放授权 (1)

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...

Servo控制

看到书上特别讲述Servo的控制 仔细看了一下 发现这个可分别控制到机器人的关节转动或是当成指示刻度...

运动控制

运动控制:关键词是“控制理论”; 控制系统可以视为具有四种机能的系统:量测(检测参数)、比较、计算及...