Azure Data Factory(四)整合 Logic App 的郵件通知提醒

Grant_Allen發表於2020-11-11

一,引言

  上一篇有介紹到使用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 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

相關文章