Azure Data Factory(四)集成 Logic App 的郵件通知提醒
- 2020 年 11 月 11 日
- 筆記
- Azure, Azure Data Factory
一,引言
上一篇有介紹到使用Azure Data Factory 複製數據,然後有集成 Azure DevOps 實現CI/CD,但是對於真正的項目來說,這些肯定是不夠的,比如說在執行 Azure Pipeline 的過程中的監視,監視 Pipeline 的狀態,想通過郵件的方式接受監視信息。
——————–我是分割線——————–
1,Azure Data Factory(一)入門簡介
2,Azure Data Factory(二)複製數據
3,Azure Data Factory(三)集成 Azure Devops 實現CI/CD
4,Azure Data Factory(四)集成 Logic App 的郵件通知提醒
二,正文
1,創建Logic App作為郵件通知
azure portal 中點擊「create a resource」,輸入框中輸入「Logic App」 進行搜索。
Resource group 選擇創建一個新的:「Web_Test_LA_RG」
Logic App Name:「cbbateblgweb_ADF_SendEmail」
Location 選擇:「East Asia」
點擊 「Review + create」
等待完成後,我們點擊進入創建好的Logic App。選擇 「Development Tools=》Logic」,點擊 「Blank Logic App」 創建空白的Logic App
在輸入框中輸入 「Http Request」,選擇搜索結果中 「Trigger」 下的 「When a Http request is received」(當接受一個Http 請求時)
點擊 「Save」,等待生成 「HTTP POST URL」
稍等片刻後,就可以看到生成出來的URL,我們先複製保存,等下可以用到。
接下來我們需要配置實例payload,點擊圖中圈中的部分
輸入以下內容:
{ "Title":"", "DataFactoryName":"", "PipeLineName":"", "Message":"", "Time":"" }
點擊 「Done」
完成上述操作後,點擊 「Save」 進行保存操作。並且刷新測試當前創建的Logic App的狀態
2,配置Azure Factory
回到之前創建好的 Dev 環境的 Azure Factory—–“ADF-CnBateBlogWeb-Dev”,我們需要在Pipeline 中再添加一個叫 「Web」 的 Activities,並且修改當前活動的名稱 「Send Emial」。
接下來需要配置URL Method等信息
URL 鏈接:就是剛剛創建Logic App 保存後生成的鏈接。
Method 選擇:「POST」
接下來就是需要我們自定義Emial通知的內容,也就是Email的正文數據,這個我們需要添加配置成動態數據,點擊紅色圈中的內容
當前動態數據需要的是Json格式的數據,我們輸入以下Json 模板信息
{ "Title":"", "DataFactoryName":"", "PipeLineName":"", "Message":"", "Time":"" }
然後就是對當前各個key 的 Value 值進行賦值,我這裡演示的是,將 「DataFactoryName」,「PipeLineName」,「Time」 三個Key 進行參數化動態數據。
選擇對應的系統變量,以及時間函數,點擊 「Finish」
配置完這些信息後,點擊 「Save All」,全部進行保存操作
最後,我們可以點擊 「Debug」 測試一下 pipeline 的運行狀態
也可以回到 Logic App 中點擊查看其運行歷史狀態
可以看到 output 輸出的內容,如 ADF Name,PipeLine Name 等信息
3,配置 Logic App 添加郵件發送
點擊添加新的步驟,首先我們需要將接收到的Logic App 中的數據進行模板化,為什麼呢?如果我們直接在添加 emial stage 的郵件內容中加的化,肯定不是不太友好的,我們如果前期提供一個很好的,很漂亮的郵件模板的話,那麼我們只需要將這個格式化好的郵件模板直接輸出就好了。
搜索 「varibales」,選擇 「Initialize variables」(初始化參數)
Name 輸入 :「Email Content」
Type 選擇:「String」
Value 填充我準備好的模板,以下時模板信息,大家在複製粘貼的時候,將對應的參數填充到對應的位置(我這裡用@param 進行標記了)
<h1>@title</h1> <hr/> <p>ADF Name:@DataFactoryName</p> <br/> <p>Pipeline Name:@PipeLineName</p> <br/> <p>Message:@Message</p> <br/> <p>Time:@Time</p>
接下來就是再添加新的步驟來配置選擇 outlook 郵箱
選擇 「Send Emial V2」
接下來就得登錄連接到OutLook 郵箱。大家自行選擇自己的需要登錄的 outlook 郵箱
接下來就是發送郵件的一些郵件參數,大家可以參考之前我寫的一篇 Logic App 入門
這裡我將郵件發送到自己的QQ郵箱,Subject(主題)、Body(內容體)作為ADF參數化的一部分和剛剛初始化的參數的一部分,
主題 選擇 動態參數 「title」
Body 選擇剛剛初始化的參數 「Email Content」
配置完這些信息後,我們進行保存。
4,發送Pipeline 狀態信息
我們回到ADF,點擊 「Debug」 進行測試
同時,我們也看看Logic App的運行狀態
最關鍵的就是看看是否收到ADF pipelin 運行狀態的監視郵件
BINGO!!! 🍾🍾🍾🍾*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
三,結尾
今天的內容其實很簡單,就是在 ADF中實現電子郵件的發送,去監聽整個Pineline 的運行狀態。同時,我們還可以自定義 ADF 動態參數,通過Logic App 添加初始化參數的 Action 將參數模板將這些參數加載展示出來。但是在這裡大家需要注意的是,ADF Pileline 不是每次運行都是成功的,我這裡演示的是成功的情況,整個是在 ADF pipeline 中的每個Activites 中可以設置的,如下圖所示:
我們可以根據每個 Activites 的狀態去發送不同的郵件,輸出不同的參數。以上就是今天的內容了,謝謝!!!!!!
作者:Allen
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。