Email Executor

Email执行器在收到事件后将配置的电子邮件发送给指定的收件人。您还可以将执行器配置为根据条件(例如特定事件类型的到来)发送电子邮件。

您可以配置Email执行器以发送多封电子邮件,每封电子邮件都有其自身的条件,一组收件人和邮件信息。您可以在所有电子邮件字段中使用表达式。

在管道中使用Email执行器之前,必须启用数据收集器才能发送电子邮件。有关配置Data Collector和其他配置通知的方式的更多信息,请参阅发送电子邮件。

有关使用Email执行器的案例研究,请参阅案例研究:发送电子邮件。有关数据流触发器和事件框架的更多信息,请参见数据流触发器概述。

先决条件

在运行包含Email执行器的管道之前,请在Data Collector配置文件$SDC_CONF/sdc.properties中定义电子邮件警报属性。

有关使Data Collector能够发送电子邮件以及其发送电子邮件的其他方式的更多信息,请参阅发送电子邮件。

条件

您可以将Email执行器配置为根据条件(例如触发电子邮件的事件类型)发送电子邮件。如果您省略条件,则Email执行器在每次收到事件时都会发送电子邮件。

例如,假设您有一个使用JDBC Query Consumer源端的管道。源端生成多种类型的事件:一种用于查询成功,一种用于查询失败,另一种用于处理所有可用数据。要使Email执行器仅在查询失败时才发送电子邮件,请在电子邮件条件中使用事件类型,如下所示:

${record:eventType() == 'jdbc-query-failure'} 

事件类型存储在每个事件记录的记录头属性中。表达式语言提供了record:eventType()返回事件记录的事件类型的功能。

要确定要在条件右侧使用的事件类型,请查看阶段的“事件记录”文档。在这种情况下,jdbc-query-failure是JDBC Query Consumer查询失败事件的事件类型。

提示:通过使用条件,您可以将多个事件流路由到同一Email执行器,并在执行器中配置所有事件驱动的电子邮件通知。有关示例,请参阅案例研究:发送电子邮件。

使用表达式

您可以在Email执行器的任何电子邮件属性中使用表达式。例如,您可以将条件基于事件记录中的信息,并将有关管道的信息包括在电子邮件中。

您可以使用适用于您的用例的任何功能,但是这里有一些建议:

pipeline函数

您可以使用pipeline函数来提供管道信息,例如管道名称和ID。

例如,您可以在电子邮件中使用pipeline:title()和 pipeline:id()来指示生成事件和电子邮件的管道。当电子邮件配置为在管道整理器停止管道之后发送时,您可能会使用以下消息:

Heads up! ${pipeline:title()}, ${pipeline:id()}, has successfully completed.
record函数
您可以使用record函数来提供事件记录中的信息。例如,record:eventType()如果管道将多种类型的事件路由到Email执行器,并且只想在接收到特定事件类型时才发送电子邮件,则应在这种情况下使用。如果将执行器与JDBC Query Consumer一起使用,则可以使用以下条件在查询成功完成时发送电子邮件:

${record:eventType() == 'jdbc-query-success'}

您还可以使用该record:eventCreation()函数在邮件中包含事件发生的时间。创建时间以纪元时间返回,因此要创建可读的时间戳,可以使用以下表达式:

${time:millisecondsToDateTime(record:eventCreation() * 1000)}

当然,您可以使用该record:value函数包括事件记录中的信息,例如成功完成的查询。

file函数
您可以使用file函数来提供有关已关闭或已写入文件的信息。
例如,您可以使用该file:fileName函数从Hadoop FS文件关闭事件的文件路径字段中提取关闭文件的名称,如下所示:

${file:fileName(record:value('/filepath'))}

配置Email执行器

配置Email执行器以在接收事件时发送电子邮件。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。对集群管道无效。
  2. 在“Email选项卡上,配置以下属性:
    电子邮件配置属性 描述
    Condition 何时发送电子邮件的可选条件。使用评估为true或false的条件。当条件评估为true时,执行器将发送配置的电子邮件。

    如果不使用执行器,则每次执行者收到事件时都会发送一封电子邮件。

    Email IDs 要使用的电子邮件地址。单击添加图标以添加其他收件人。
    Email Subject 显示在电子邮件主题字段中的信息。
    Email Body 显示在电子邮件正文中的信息。
    注意:您可以在所有电子邮件配置属性中使用表达式。有关更多信息,请参见使用表达式。
  3. 使用简单或批量编辑模式,单击添加图标以配置其他电子邮件。