将工作流连接到 Azure 逻辑应用中的事件中心

适用于:Azure 逻辑应用(消耗型 + 标准型)

若要从 Azure 逻辑应用中的工作流中自动执行监视和管理事件中心中的任务,请使用 Azure 事件中心 连接器作。 例如,工作流可以从事件中心检查、发送并接收事件。

本文演示如何通过将事件中心触发器或作添加到工作流来连接到 事件中心

连接器参考

有关此连接器的作、其参数和其他技术信息(例如限制、已知问题等),请参阅 事件中心连接器的参考页

先决条件

  • Azure 帐户和订阅。 如果没有订阅, 请注册试用版 Azure 订阅

  • 事件中心命名空间和事件中心

    请确保检查工作流是否可以访问事件中心。 若要完成此任务,请执行以下步骤:

    1. Azure 门户中,转到事件中心命名空间而不是特定的事件中心。

    2. 在命名空间菜单上的“设置”下,选择“共享访问策略”。 在“声明”列中,检查你对该命名空间是否至少拥有“管理”权限 。

      注释

      稍后创建与事件中心命名空间的连接时,系统会要求为连接选择身份验证类型。 根据身份验证类型选择,可能需要命名空间连接字符串。 例如, 访问密钥 身份验证需要此连接字符串。

    3. 如果以后计划选择需要事件中心命名空间连接字符串的身份验证类型,请立即保存该字符串,以便稍后可以输入该信息:

      1. 在“策略”列中,选择“RootManageSharedAccessKey” 。

      2. 查找主键的连接字符串。 复制并保存连接字符串供以后使用。

        若要确认连接字符串属于事件中心命名空间,而不是特定的事件中心,请确保连接字符串没有 EntityPath 参数。 如果找到此参数,则连接字符串属于事件中心,不是用于工作流的正确字符串。

        屏幕截图显示了主键连接字符串,其中选择了“复制”按钮。

  • 你要从中访问事件中心的逻辑应用工作流

    若要使用事件中心触发器启动工作流,需要一个空的工作流。 若要在工作流中使用事件中心作,可以使用最适合方案的任何触发器来启动工作流。

添加事件中心触发器

在 Azure 逻辑应用中,每个工作流都必须通过一个触发器启动,该触发器在满足特定的条件时会触发。 每次触发触发器时,Azure 逻辑应用都会创建工作流的实例,并开始运行工作流中的步骤。

以下步骤介绍了添加 事件中心 触发器的一般方法,例如 事件中心中的可用事件时间。 此示例触发检查事件中心的新事件,并在存在新事件时启动工作流运行。

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 根据使用的是“消耗”还是“标准”逻辑应用资源,按相应步骤操作:

    • 消耗:在资源边栏上的 “开发工具”下,选择设计器以打开空白工作流。

    • 标准:在资源边栏的 “工作流”下,选择“ 工作流”,然后选择空白工作流。 在工作流边栏上的 “工具”下,选择设计器以打开空白工作流。

  3. 在设计器中,按照以下 常规步骤将想要 的事件中心 触发器添加到 工作流。

    有关详细信息,请参阅 事件中心 - 触发器。 此示例继续使用事件 中心中名为“事件何时可用”的触发器。 此触发器检查事件中心的新事件,并在存在新事件时启动工作流运行。

  4. 如果系统提示, 请提供事件中心的连接信息

  5. 在触发器中,提供所选触发器所需的信息。

    对于示例触发器,下表描述了可用参数,从以下默认参数开始:

    参数 需要 说明
    事件中心名称 要监视的事件中心的名称。

    要检查项的频率下,可以使用以下默认参数:

    参数 需要 说明
    时间间隔 一个正整数,描述工作流基于频率运行的频繁度。
    频率 重复周期的时间单位。
    时区 仅当指定启动时间时才适用,因为此触发器不接受 UTC 时差。 选择要应用的时区。

    有关详细信息,请参阅 “计划和运行定期工作流”。
    开始时间 按以下格式提供开始时间:

    如果选择了时区,则格式为 YYYY-MM-DDThh:mm:ss

    -或-

    如果未选择时区,则格式为 YYYY-MM-DDThh:mm:ssZ

    有关详细信息,请参阅 “计划和运行定期工作流”。

    “高级参数 ”列表中,有以下可选参数可用:

    参数 需要 说明
    内容类型 事件的内容类型。 默认值为 application/octet-stream
    内容架构 事件的内容架构。
    使用者组名称 用于读取事件 的事件中心使用者组 的名称。 如果未指定,则使用默认使用者组。
    最小分区键 输入要读取的最小分区 ID。 默认读取所有分区。
    最大分区键 输入要读取的最大分区 ID。 默认读取所有分区。
    最大事件计数 最大事件数。 触发器返回的事件数至少为 1,至多为此属性指定的事件数。
  6. 完成后,请在设计器工具栏上选择“保存”。

  7. 现在继续添加一个或多个操作,以便可以使用触发器输出执行其他任务。

    例如,若要根据特定值(例如类别)来筛选事件,可以添加一个条件,这样“发送事件”操作就只发送符合条件的事件。

触发器行为

触发器轮询行为

所有事件中心触发器都是长轮询触发器。 此行为意味着当触发器触发时,会处理所有事件,然后等待 30 秒,让更多事件出现在事件中心。 按照设计,如果在 30 秒内未出现事件,则会跳过触发器。 否则,该触发器将继续读取事件,直到事件中心为空。 下一次触发器轮询的发生将基于触发器的属性中设置的重复周期间隔。

例如,如果对触发器设置了四个分区,则此延迟可能需要最长两分钟时间,触发器才能完成对所有分区的轮询。 如果在此延迟内未收到任何事件,则会跳过触发器运行。 否则,该触发器将继续读取事件,直到事件中心为空。 下一次触发器轮询的发生将基于触发器的属性中指定的重复周期间隔。

如果知道消息显示的特定分区,则可以将触发器更新为仅从这些分区读取事件。 设置触发器的最大和最小分区键。 有关详细信息,请查看添加事件中心触发器部分。

触发器检查点行为

当事件中心触发器从事件中心中的每个分区读取事件时,触发器用户自己的状态以维护有关 流偏移 (分区中的事件位置)的信息,以及触发器从中读取事件的分区。

每次运行工作流时,触发器都会从分区读取事件,从存储在触发器状态中的流偏移量开始。 触发器以轮循方式循环访问事件中心内的每个分区,并在后续的触发器运行中读取事件。 单个运行一次从一个分区中获取事件。

触发器不会在存储中使用此检查点功能,因此不会产生额外的成本。 更新事件中心触发器会重置触发器的状态,这可能会导致触发器在流开始时读取事件。

添加事件中心操作

在 Azure 逻辑应用中, 遵循触发器或其他作并在工作流中执行某些任务。 以下步骤介绍了添加 事件中心 作(如 发送事件)的一般方法。 对于此示例,工作流以 事件中心 触发器开头,用于检查事件中心中的新事件。

  1. Azure 门户中,打开你的逻辑应用资源。

  2. 根据使用的是“消耗”还是“标准”逻辑应用资源,按相应步骤操作:

    • 消耗:在资源边栏上的 “开发工具”下,选择设计器以打开工作流。

    • 标准:在资源边栏的 “工作流”下,选择“ 工作流”,然后选择工作流。 在工作流边栏上的 “工具”下,选择设计器以打开工作流。

  3. 在设计器中,按照以下 常规步骤将想要 的事件中心 作添加到 工作流。

    有关详细信息,请参阅 事件中心 -作。 此示例继续执行名为 Send 事件的作。

  4. 如果系统提示, 请提供事件中心的连接信息

  5. 在作中,提供所选作所需的信息。

    对于示例作,下表描述了可用参数,从以下默认参数开始:

    参数 需要 说明
    事件中心名称 要在其中发送事件的事件中心的名称。

    “高级参数 ”列表中,有以下可选参数可用:

    参数 需要 说明
    分区键 事件发送位置的 分区 ID。
    内容 要发送的事件的内容。
    属性 要发送的应用属性和值。

    例如,可以将事件中心触发器的输出发送到另一个事件中心:

    屏幕截图显示了事件中心作,其中高级参数内容已添加到作。

  6. 完成后,请在设计器工具栏上选择“保存”。

创建连接

首次添加事件中心触发器或操作时,系统会提示你创建与事件中心的连接。 对于此连接,请提供以下信息,然后选择“ 新建”:

参数 需要 说明
连接名称 用于标识连接的名称。
身份验证类型 连接的身份验证类型,具体取决于你的方案。 根据选择显示其他身份验证参数。

在此示例中, 访问密钥 需要事件中心命名空间的连接字符串。

有关详细信息,请参阅 事件中心 - 创建连接

创建连接后,继续添加事件中心触发器添加事件中心操作