你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

合作伙伴的合作伙伴事件概述 - Azure 事件网格

借助事件网格的合作伙伴事件,客户可使用与 Azure 上任何其他事件源(例如 Azure 服务)相同的机制订阅源自已注册系统的事件。 与事件网格集成的已注册系统称为“合作伙伴”。 此功能还使客户能够将事件发送到合作伙伴系统,这些系统支持接收事件并将其路由到其平台中的客户解决方案/终结点。 通常,合作伙伴是服务型软件 (SaaS) 或 ERP 提供程序,但它们可能是希望将其事件提供给内部团队的企业平台。 他们特意与事件网格集成来实现端到端客户用例,这些用例在 Azure(客户订阅合作伙伴发送的事件)上结束,或者在合作伙伴系统(客户订阅 Azure 事件网格发送的 Microsoft 事件)上结束。 客户依赖 Azure 事件网格向受支持的目标(如 Webhook、Azure Functions、Azure 事件中心或 Azure 服务总线等)发送合作伙伴发布的事件。 此外,客户还会依赖 Azure 事件网格路由源自 Microsoft 服务(如 Outlook、Teams 或 Microsoft Entra ID)的事件,以便客户解决方案可对其做出回应。 借助合作伙伴事件,客户可跨平台和网络边界构建事件驱动的解决方案,以便可靠、安全、大规模地接收或发送事件。

注意

这是一篇概念性文章,在决定作为合作伙伴加入 Azure 事件网格之前需要阅读它。 若要分步了解如何使用 Azure 门户以事件网格合作伙伴的身份加入,请参阅如何作为事件网格合作伙伴加入(Azure 门户)

合作伙伴事件:工作原理

作为合作伙伴,你需要创建事件网格资源,这样就能够将事件发布到 Azure 事件网格,以便 Azure 上的客户可订阅它们。 对于大多数合作伙伴(例如 SaaS 提供商),这是它们将使用的唯一集成功能。

还可创建事件网格资源以从 Azure 事件网格接收事件。 此用例适用于这样的组织,它们拥有或管理通过公开终结点使客户能够接收事件的平台。 其中一些组织是 ERP 系统,其平台中也有事件路由功能,它将传入的 Azure 事件发送到在其平台上托管的客户应用程序。

对于发布事件或接收事件,可按照这些常规步骤创建相同类型的事件网格资源

  1. 请联系事件网格团队 (askgrid@microsoft.com) 来表达你对成为合作伙伴的兴趣。 与我们联系后,我们将指导你完成加入过程,并帮助你的服务在我们的 Azure 事件网格库中获取入口卡,以便其他人可在 Azure 门户找到你的服务。

  2. 创建合作伙伴注册。 这是一个全局资源,通常需要创建一次。

  3. 创建合作伙伴命名空间。 此资源公开可将事件发布到 Azure 的终结点。 创建合作伙伴命名空间时,请提供创建的合作伙伴注册。

  4. 客户授权你在客户的 Azure 订阅中创建合作伙伴主题

  5. 客户访问你的网页或执行命令,你定义用户体验来请求事件流到 Azure,或者将 Microsoft 事件接收到系统中的功能。 为了响应该请求,你使用客户的输入设置系统来执行此操作。 例如,客户可能选择从你的系统中选择一些应转发到 Azure 的事件。

  6. 使用渠道在客户的 Azure 订阅和资源组中创建合作伙伴主题。 通道是合作伙伴命名空间包含的资源。

  7. 客户激活你在其 Azure 订阅和资源组中创建的合作伙伴主题。

  8. 开始将事件发布到你的合作伙伴命名空间。

    注意

    必须将 Azure 事件网格资源提供程序注册到要在其中创建事件网格资源的每个 Azure 订阅。 否则,创建资源的操作将失败。

使用合作伙伴事件的理由是什么?

如果你有以下一个或多个要求,则可能要使用合作伙伴事件功能。

对于作为事件发布者的合作伙伴

  • 你需要一种机制,用于在 Azure 上向客户提供事件。 用户可以使用其拥有和管理的合作伙伴主题和事件订阅来筛选和路由这些事件。 你可以使用其他集成方法,如主题。 但是,使用这些方法,你和客户之间无法将资源所有权、资源管理和资源计费完全分离。 合作伙伴事件功能还提供更直观的用户体验,这使得可轻松发现你的服务。
  • 需要一个简单的多租户模型,可将事件发布到单个区域终结点(命名空间的终结点),以将事件路由到不同的客户。
  • 你要了解与已发布事件相关的指标。
  • 你要为事件使用云事件 1.0 架构。

对于作为订阅者的合作伙伴

  • 你希望你的服务对源自 Microsoft Azure 的客户事件做出回应。
  • 你希望客户使用由你的平台托管的应用程序对 Microsoft Azure 服务事件做出回应。 使用平台的事件路由功能将事件传送到正确的客户解决方案。
  • 你需要一个简单的模型;在该模型中,客户只需选择服务名称作为目标,而无需了解平台终结点等技术详细信息。
  • 你的系统/平台支持 Cloud Events 1.0 架构。

合作伙伴管理的资源

作为合作伙伴,可管理以下类型的资源。

合作伙伴注册

注册包含与合作伙伴相关的常规信息。 创建合作伙伴命名空间时需要注册。 也就是说,必须具有合作伙伴注册才能创建必要的 Azure 资源以与 Azure 事件网格集成。

注册是全局的。 即,它们不与特定 Azure 区域关联。 可创建单个合作伙伴注册,并在创建合作伙伴命名空间时使用该注册。

通道

通道是合作伙伴命名空间的嵌套资源。 通道主要有两个用途:

  • 它是一种资源类型,可用于在客户的 Azure 订阅上创建合作伙伴资源。 创建 partner topic 类型的通道时,会在客户的 Azure 订阅上创建合作伙伴主题。 合作伙伴主题是合作伙伴系统发布事件时将事件路由到的客户资源。

    通道的生命周期与其关联的客户合作伙伴主题或目标相同。 例如,删除 partner topic 类型的通道时,会删除关联的客户的合作伙伴主题。 同样,如果客户删除了合作伙伴主题,则会删除你的 Azure 订阅上的关联通道。

  • 它是用于路由事件的资源。 partner topic 类型的通道用于将事件路由到客户的合作伙伴主题。 它支持两种类型的路由模式。

    • 通道名称路由。 使用此类路由,可使用名为 aeg-channel-name 的 http 标头发布事件,其中提供了应将事件路由到的通道的名称。 由于通道是合作伙伴主题的合作伙伴表示形式,因此路由到通道的事件会显示在客户的合作伙伴主题上。 这种路由是 event channels 中没有的一项新功能,它仅支持基于源的路由。 通道名称路由与基于源的路由相比支持更多的用例,建议选择此路由模式。 例如,使用通道名称路由时,客户可请求源自不同事件源的事件,以登陆到单个合作伙伴主题。
    • 基于源的路由。 此路由方法基于事件中 source 上下文特性的值。 源映射到通道中。例如,当事件附带值“A”的源时,该事件会路由到与其源特性中包含“A”的通道关联的合作伙伴主题。

    你可能希望声明路由到通道及其关联合作伙伴主题的事件类型。 在合作伙伴主题上创建事件订阅时,将向客户显示事件类型,该类型用于选择要发送到事件处理程序目标的特定事件类型。 了解详细信息

    重要

    可在通道上管理事件类型,一旦值更新,更改会立即反映在关联的合作伙伴主题上。

合作伙伴命名空间

合作伙伴命名空间是一种区域资源,具有用于将事件发布到 Azure 事件网格的终结点。 合作伙伴命名空间包含通道或事件通道(旧资源)。 必须在客户请求合作伙伴主题或目标的区域创建合作伙伴命名空间,因为通道及其相应的合作伙伴资源必须驻留在同一区域中。 例如,不能在给定区域具有通道,而其相关合作伙伴主题位于其他区域。

合作伙伴命名空间包含通道或事件通道。 它由命名空间中的“合作伙伴主题路由模式”属性确定。 如果它设置为通道名称标头,则通道是唯一可在命名空间下创建的资源类型。 如果合作伙伴主题路由模式设置为“事件中的源特性”,则命名空间只能包含事件通道。 请注意,关于设置正确的 partner topic routing mode 的决定并非是在通道名称和基于源的路由之间做出选择。 通道支持这两者。 相反,这是决定使用新型路由资源(通道)还是使用旧资源(事件通道)。

事件通道

事件通道是与合作伙伴事件一同首次发布的资源,用于将传入事件路由到合作伙伴主题。 事件通道仅支持基于源的路由,并且它们始终表示客户合作伙伴主题。

重要

正在弃用事件通道。 因此,建议使用通道。

已验证的合作伙伴

已验证的合作伙伴是其标识已经过 Microsoft 验证的合作伙伴组织。 强烈建议你的组织经过验证。 客户希望与已验证的合作伙伴互动,因为此类验证可更好地保证他们正在与合法组织打交道。 验证后,存在事件网格库可使你获益;例如,在该库中,客户可在订阅你的事件后轻松发现你的服务并拥有第一方体验。

客户授权创建合作伙伴主题

客户授权你在其 Azure 订阅中创建合作伙伴主题。 该授权针对的是客户 Azure 订阅中的给定资源组,并且有时间限制。 必须在客户设置的到期日期之前创建通道。 你应具有文档,其中指出客户有足够的时间配置你的系统,来发送和接收事件并在授权过期之前创建通道。 如果尝试在没有授权的情况下或在授权过期后创建通道,那么通道创建将失败,并且不会在客户的 Azure 订阅上创建任何资源。

注意

事件网格于 2022 年 6 月 30 日左右开始执行授权检查以创建合作伙伴主题。 在你创建通道之前,你的文档应要求你的客户授予你授权作为先决条件。

重要

已验证的合作伙伴不是授权的合作伙伴。 即使合作伙伴已经过 Microsoft 审查,你仍需要获得授权,然后才能在客户的 Azure 订阅上创建合作伙伴主题。

合作伙伴主题激活

客户激活你为其创建的合作伙伴主题或目标。 此时,通道的激活状态更改为“已激活”。 激活通道后,可以开始将事件发布到包含通道的合作伙伴命名空间终结点。

如何自动执行该过程,来了解何时可开始发布给定合作伙伴主题的事件?

可以使用两个选项:

  • 定期读取(轮询)通道状态,检查激活状态是否已从“从未激活”转换为“已激活”。 该操作可能需要大量计算。
  • 为包含要监控的通道的 Azure 订阅资源组创建一个事件订阅。 每当通道更新时,你都会收到 Microsoft.Resources.ResourceWriteSuccess 事件。 然后,需要使用事件中提供的 Azure 资源管理器 ID 读取通道的状态,以确定更新与将激活状态更改为“已激活”相关。

参考

SDK

后续步骤