Day24 NiFi 延伸应用 - Slack & Email

有时候 Data Pipeline 可能会因为一些原因出现一些问题,像是网路问题、OOM、资料格式不对等,这时候就需要将一些资讯内容通知到我们平常会用到的平台,像是 Email、slack 等,但如果还要再透过 HTTP API 去做发布的话就会变得更加复杂,所以 NiFi 就有支援原生的 Processor 可以让我们去做这样的事情,分别是 PutEmail, PutSlackPostSlack

How to use?

PutEmail

我们来看一下 PutEmail 的 Properties 的设定:

  • SMTP Hostname: SMTP 的 hostname,ex. Gmail SMTP 或是 AWS SES 等服务取得
  • From: 发信者的 email 帐号
  • To: 收信者的 email 帐号,以 , 来做多 email 的连结
  • CC: 寄件副本的 email 帐号,以 , 来做多 email 的连结
  • Subject: email 的主旨
  • Message: email 的内容
  • Flow File content as message: 是否要将 FlowFiles 的 Content 一并作为 email 的内容发送出去
  • Attach File: 是否要加入 FlowFiles 内容
  • Include All Attributes In Message: 是否要将 FlowFiles 的 Attributrs 一并作为 email 的内容发送出去

PutSlack

  • Webhook URL: slack webhook url,通常会带有 slack 的 token
  • Webhook Text: slack 的讯息内容,可用 markdown 的方式撰写,也支援 NEL 。
  • Channel: slack channel name
  • Username: 寄送的名字
  • Icon URL: 要大头贴的 icon,通常与 Icon Emoji 二择一
  • Icon Emoji: 大头贴的 icon,通常与 Icon URL 二择一

在这样的设定下,发布到 slack 状态会长的如下:

  • 橘框 就是 icon,他会根据我们设定的 Icon URL 来取得图片来做放置
  • 黄框 就是 Username
  • 红框 就是 Webhook Text,就是可以透过 markdown 的方式来转写要发送的内容。

PostSlack

这个 Processor 与前一个 PutSlack 的差别在於他可以上传 FlowFile,也就是可以上传像是 jpeg, png 的档案到 slack 上,我们来快速看一下他的设定:

  • Access Token: 填入 slack 的 token
  • Channel: 指定要发布的 Channel name
  • Text: 发布的资讯内容文字,支援 markdown
  • File Title: 上传到 Slack 的 File title
  • File Name: file 的名称
  • File Mime Type: ex. image/jpeg
    (补图)

小总结

透过以上三个方式,我们可以轻松地依据自已的场景需求,来设定要通知的讯息内容与目的地,如此一来我们就可以设计一个监控的机制,当有发生问题时,就透过这些 Processor 来将相关的讯息穿送到可以通知我们的地方。

到目前为止,已经介绍完了一些大部分场景可能会用到的 Processor,让接下来明天开始会为期三天的场境应用范例,我会提供一个场景,然後一步一步地带大家将这些 data pipeline 整合起来,同时也可以把过去这几天所介绍的 Processor 还有细节给串连起来,想必经过这样的分享,一定会对 NiFi 的操作更有所体悟!

Reference


<<:  【day24】上传多张照片(上)

>>:  Day 27 阿里云上运行Kubernetes 3 - ACK

【第 29 个第一次】 没创业也该看看的最小可行性产品 MVP 概念,是人生哲学。

Day 29 - 客户说:我是个人户,但是有个理念一直很想要做看看,可以帮我网站报价吗,概念是这样....

第55天~

这个得上一篇:https://ithelp.ithome.com.tw/articles/10260...

Day30 完赛结语

终於来到最後一天了,经过这30天的练习与磨练,我学习到很多有关网页的基本知识,也谢谢有在观看我文章的...

资料库练习

这次练习沿用的程序码是我铁人赛每篇阅览数。先说一下程序码的改动,原本我只抓阅览数,那这次有多增加发文...

仓库进出货管理

电子化的库房管理,有助於进货、退货、取货等流程的简化,但在不同产业,繁简各有不同,通常在汽车、水电瓦...