Compartilhar via

Azure Event Grid中的自定义主题

事件网格主题提供一个可供源在其中发送事件的终结点。 发布者创建一个事件网格主题,并决定事件源需要一个主题还是多个主题。 使用主题来组织相关事件的集合。 为了对某些类型的事件作出响应,订阅者决定要订阅哪些主题。

自定义主题是应用程序和第三方的主题。 在创建或分配了对自定义主题的访问权限后,就会在订阅中看到该自定义主题。 自定义主题支持推送传递

在设计应用程序时,必须确定要创建多少个主题。 对于相对较大的解决方案,请为相关事件的每个类别创建一个自定义主题。 例如,假设一个应用程序需要管理用户帐户,另一个应用程序需要管理客户订单。 不太可能所有的事件订阅者都会想要来自这两个应用程序的事件。 若要将问题分开,请创建两个主题:为每个应用程序各创建一个。 让事件处理程序根据其要求订阅主题。 对于小型解决方案,可能希望将所有事件发送到单个主题。 事件订阅者可以筛选他们所需的事件类型。

事件架构

自定义主题支持两种类型的事件架构:CloudEvents 和事件网格架构。

CloudEvents 架构

除了默认事件架构之外,Azure Event Grid 本身支持 CloudEvents v1.0JSON 实现 和 HTTP 协议绑定中的标准事件。 CloudEvents 是一种用于描述事件数据的开放规范

CloudEvents 提供通用事件架构用于发布和使用事件,可简化互操作性。 此架构允许统一的工具、标准的路由和处理事件方式,以及反序列化事件的常见方法。 使用通用架构可以更轻松地跨平台集成工作。

注意

有关详细信息,请参阅云事件架构

Event Grid 事件架构

在使用事件网格事件架构时,可以在数据对象中指定特定于应用程序的属性。

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

注意

有关详细信息,请参阅事件网格事件架构

以下部分提供了教程的链接,这些教程使用 Azure 门户、CLI、PowerShell 和 Azure Resource Manager (ARM) 模板创建自定义主题。

Azure门户教程

以下快速入门或教程演示如何创建主题、将偶数发送到主题的终结点,以及如何使用 Azure 门户将其路由到受支持的目标。

标题 说明
Quickstart:使用 Azure 门户创建和路由自定义事件 说明如何使用门户发送自定义事件。
Quickstart:将自定义事件路由到Azure队列存储 说明如何将自定义事件发送到队列存储。
如何:发布到自定义主题 说明如何将事件发布到自定义主题。

Azure CLI教程

以下快速入门或教程演示如何创建主题、将偶数发送到主题的终结点,以及如何使用 Azure CLI将其路由到受支持的目标。

标题 说明
Quickstart:使用 Azure CLI 演示如何使用Azure CLI发送自定义事件。
Azure CLI:创建事件网格自定义主题 用于创建自定义主题的示例脚本。 该脚本检索终结点和密钥。
Azure CLI:订阅自定义主题事件 用于创建自定义主题的订阅的示例脚本。 它将事件发送到 WebHook。

Azure PowerShell教程

以下快速入门或教程演示如何创建主题、将偶数发送到主题的终结点,以及如何使用 Azure PowerShell将其路由到受支持的目标。

标题 说明
Quickstart:使用 Azure PowerShell 演示如何使用Azure PowerShell发送自定义事件。
PowerShell:创建事件网格自定义主题 用于创建自定义主题的示例脚本。 该脚本检索终结点和密钥。
PowerShell:订阅针对自定义主题的事件 用于创建自定义主题的订阅的示例脚本。 它将事件发送到 WebHook。

ARM 模板教程

以下快速入门或教程展示如何使用 ARM 模板创建主题并创建对该主题的订阅。

标题 说明
资源管理器模板:自定义主题和 WebHook 终端节点 一个Resource Manager模板,用于为该自定义主题创建自定义主题和订阅。 它将事件发送到 WebHook。
Resource Manager模板:自定义主题和事件中心终结点 为自定义主题创建订阅的Resource Manager模板。 它将事件发送到Azure Event Hubs。

请参阅以下文章: