[Azure] 將Azure Monitor的訊息發送至LINE推播上

Line是目前許多人會使用的一個即時通訊軟體,也作為許多公司或是團隊溝通的橋樑
在Azure上只要透過簡單的設定,就可以達到將Azure Monitor的訊息送入到Line的推播訊息中

要能夠讓Azure Monitor的訊息能夠發送到Line上面,可以參考下面的整體架構圖從上圖可以看到,Azure Monitor發送的訊息,無法直接送到Line的推播服務上,必須中間經過一個Logic App作推播訊息的轉換才有辦法送入到Line之中

下面,我們先在Line的服務進行一些簡單的設定

1.先開啟網頁,連上https://notify-bot.line.me/my/這個網址,並登入自己的Line帳號

2.登入之後,點選下方的[發行存取權仗],並在發行權仗的項目中給與一個推播的名稱,然後選擇要推送訊息的群組,又或是可以只推送給自己。在這裡,我先選擇推送給我自己,完成後按下下方的發行按鈕

3.發行完成後,會給予一個權仗代碼,請先把這個權仗代碼記下來,等一下我們會用到

到這裡,Line的設定就已經完成了,接下來要針對Azure服務進行設定

1.打開Azure Portal,並建立一個Logic App的服務

2.給予Logic App一個名稱,並設定為區域服務

3.新增完成後,進入到[邏輯應用程式設計工具]的頁面中一進入到設計工具的頁面,第一個步驟請先點選[Azure Monitor - Metrics Alert Handler]這個項目接下來Logic App會把第一個步驟先以接收Azure Monitor內容範本的方式建立,在這裡我們都先不去修改裡面的JSON內容

4.新增完Logic App的第一個步驟後,按下[+ 新步驟]的按鈕,並選擇新增[HTTP內建],然後點選[選擇要叫用的REST API]

5.接著在要呼叫的REST API設定中,加入下面的設定內容

方法:POST
URI:https://notify-api.line.me/api/notify?message=[在這裡放入需要傳送的訊息內容]
標頭:[Authorization],,標頭值:Bearer [Line的發行權仗]
標頭:[Content-Type],標頭值:application/x-www-form-urlencoded

如果針對想要傳送到Line的訊息有需要作其他特別的內容,可以將這些內容文字放在URI的message參數中,當然這些參數也可以使用動態內容,將Azure Monitor的訊息轉送出去

6.設定完成後,儲存設定,就會在Logic App中得到步驟1中,要啟動Logic App動作的網址,先把這個網址記下來,等一下會用到

7.打開要監控的Azure服務項目,並點選該服務的[警訊]項目接著點選[新增警示規則]

8.建立警示規則的條件,為了文章撰寫方便,所以我設定為網站Requests的數量大於1的時候就發送Monitor的通知,若是有個別需求的話,可以針對不同的內容條件進行設定

9.接著,在設定動作群組的地方,新增動作群組,設定一個名稱以及簡短名稱。在動作的地方,將動作類型設定為[Webhook],並將剛剛Logic App所產生的網址,貼上到URI欄位中

10.最後,確認一下設定都完成了,就可以建立警示規則

11.接下來只要去觸發Azure Monitor的事件,等Azure Monitor將訊息發送到Logic App,再從Logic App發送到Line的Notify服務就可以收到推播訊息了

若是要將訊息推送到群組的話,記得在群組中要把[LINE Notify]這個機器人加入到群組中才會收得到推播