Azure Data Factory(四)集成 Logic App 的邮件通知提醒

一,引言

  上一篇有介绍到使用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 的邮件通知提醒

5,Azure Data Factory(五)Blob Storage 密钥管理问题

 6,Azure Data Factory(六)数据集类型为Dataverse的Link测试

二,正文

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 

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

 
posted @ 2020-11-11 21:00  Grant_Allen  阅读(1739)  评论(12编辑  收藏  举报