Compartir a través de

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

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

在执行管道期间或之后,通常需要发送通知。 通知提供主动警报并降低为发现问题所需的反应监视。  本文介绍如何在 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 通知