使用 Azure 数据工厂或 Azure Synapse 管道发送电子邮件

适用于: Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

在执行管道期间或之后,通常需要发送通知。 通知提供主动警报并降低为发现问题所需的反应监视。  本文介绍如何在 Azure 数据工厂或 Azure Synapse 管道中配置电子邮件通知。 

先决条件

在逻辑应用中创建电子邮件工作流

创建名为 SendEmailFromPipeline 的标准逻辑应用工作流。 添加名为 When an HTTP request is received 的请求触发器,并添加名为 Send an email (V2) 的 Office 365 Outlook 操作。

显示逻辑应用工作流设计器,其中包含请求触发器和“发送电子邮件 (V2)”操作。

在请求触发器中,为 Request Body JSON Schema 属性提供此 JSON:

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

工作流设计器中的请求触发器应如下所示:

显示请求触发器的工作流设计器,其中已填充“请求正文 JSON 架构”字段。

对于“发送电子邮件 (V2)”操作,请使用请求正文 JSON 架构的属性来自定义如何设置电子邮件的格式:

显示“发送电子邮件 (V2)”操作的工作流设计器。

保存工作流。 浏览到工作流的“概述”页。 记下工作流 URL(在下图中已突出显示):

显示工作流概述页,其中突出显示了工作流 URL。

注意

若要查找工作流 URL,你必须浏览到工作流本身,而不只是包含工作流的逻辑应用。 在逻辑应用实例的“工作流”页中,选择工作流,然后导航到工作流的“概述”页。

创建管道以触发逻辑应用工作流

创建用于发送电子邮件的逻辑应用工作流后,可以使用 Web 活动从管道触发该工作流。

  1. 创建新管道,并在“常规”类别下找到“Web”活动,并将其拖到编辑画布 。

  2. 选择新 Web1 活动,然后选择“设置”选项卡 。

    提供之前在 URL 字段创建的逻辑应用工作流的 URL

    为“正文”提供以下 JSON:

       {
        "message" : "This is a custom dynamic message from your pipeline with run ID @{pipeline().RunId}.",
        "dataFactoryName" : "@{pipeline().DataFactory}", 
        "pipelineName" : "@{pipeline().Pipeline}", 
        "receiver" : "@{pipeline().parameters.receiver}"
       }
    

    使用动态表达式为管道中的事件生成有用的消息。 请注意,此处的 JSON 格式与在逻辑应用中定义的 JSON 格式匹配,还可以根据需要对其进行自定义。

    显示配置了 Web 活动的管道,并含有逻辑应用工作流 URL 和 JSON 消息正文。

  3. 选择管道设计器的背景区域来选择管道属性页面,并添加名为接收器的新参数,提供电子邮件地址作为其默认值。

    在此示例中,我们将从我们任意定义的管道参数提供接收方电子邮件。 接收方值可以来自任何表达式,甚至是链接的数据源。

    显示管道设计器中接收方参数的配置。

  4. 发布管道,然后手动触发,确认电子邮件已按预期方式发送。

    显示如何手动触发管道。

使用系统变量和表达式添加动态消息

可使用系统变量表达式使消息变得动态。 例如:

  • @activity("CopyData").output.errors[0].Message

  • @activity("DataFlow").error.Message

上述表达式将从复制活动失败中返回相关错误消息,然后这些错误消息可以重定向到发送电子邮件的 Web 活动。 有关详细信息,请参阅复制活动输出属性一文。

如何从管道发送 Teams 通知