上次應用過將Zabbix告警訊息即時發送到Teams頻道上,有種愈玩愈上癮的感覺,這次動機因為是大量的防毒軟體平台(Trend Vision One)告警訊息從email進來,我經常會忽略它,有時候不想一直看email,又或者要設定郵件規則避免漏信,覺得很麻煩又不是那麼便利,尤其人在外面的時候,通常看手機Teams的訊息比看email方便,所以就再度研究一下如何應用Teams的webhook功能,讓我可以快速檢視來自防毒系統的即時訊息。不過值得注意的是,本次設定與上一次Zabbix不同之處,在於Vision One所提供的JSON不符合要觸發的自適應卡片(Adaptive Card)格式,所以最終得要自己編輯發布到頻道訊息的內容,這不是一件很容易的工作,也讓我算是間接學習到一點如何自定義表達式來讀取JSON格式的一些基本功。
一.建立專屬用來收Vision One訊息的頻道
這個前置作業跟上一次內容一樣,只需要多加留意新建的頻道是否要安排公開或私人。
![]() |
在已經存在的團隊上建立一個新的頻道 |
![]() |
自定義頻道名稱 |
![]() |
一樣選定標準的隱私權 |
![]() |
最後按下建立 |
![]() |
成功建立新頻道 |
![]() |
不久後馬上可以看到Team上出現鋼創建的頻道 |
二.WorkFlows新建流程
這部分比上次有難度且較有趣的是,算是重頭戲,要花一點學習Power Automat的函數,雖然語法沒有難到哪裡,但畢竟是第一次學,而且邊做邊學習,弄了兩天才摸出一點頭緒。
![]() |
同樣選擇WorkFlows |
![]() |
一樣右上角「新增流程」 |
![]() |
選用「收到webhook要求時同步發布在頻道中」 |
![]() |
為此流程webhook作命名 |
![]() |
選擇要發布的團隊和頻道 |
![]() |
首要步驟完成,取的連線URL |
![]() |
按下「編輯」,準備調整細部設定 |
![]() |
在觸發的條件一樣可以看到URL |
原先的「Posst Card in a chat or chnnel」要刪除,原先的自適應卡片不適用了,新步驟的要換掉 |
選擇「在聊天室或頻道中張貼訊」,準備自行定義內容 |
#這是參考內容,要依據原生的JSON去自定義,把讀取的JSON轉成字串
類別: @{triggerBody()?['type']}
標題: @{triggerBody()?['title']}
內容: @{triggerBody()?['data']}
![]() |
可以找到Notofication裡面的設定功能,我選擇原本就有發email通知的項目做編輯 |
![]() |
點入後有看到webhook的貼URL欄位 |
![]() |
按下Connect,就會發出測適用通知 |
![]() |
順便看清楚JSON的body內容,裡面的key和value將會對應到Teams上的訊息 |
![]() |
發測試訊息成功,可以儲存此設定 |
![]() |
新建的webhook出現在WEBHOOK LIST上 |
![]() |
把此功能打開,等待之後訊息進來 |
回頭看,新頻道取得了測試連結發過來訊息 |
微軟這套Power Automat的道具包,應該有非常多實用又學不完的自動化工具,通常要有比較具體的情境才會開始進入學習並應用,就看看之後的日子裡還有什麼實務情境可以來測試,有碰到需求的話就再繼續。
沒有留言:
張貼留言