事件网格中的系统主题表示 Azure 服务(如 Azure 存储和 Azure 事件中心)发布的一个或多个事件。 例如,系统主题可以表示所有 Blob 事件,也可以仅表示为特定存储帐户发布的 blob 创建和 blob 删除的事件。 在此示例中,将 Blob 上传到存储帐户时,Azure 存储服务会将 创建 Blob 的事件发布到事件网格中的系统主题,然后将该事件转发到接收和处理事件的主题 订阅者 。
支持系统主题的 Azure 服务
下面是支持创建系统主题的 Azure 服务的当前列表。
- Azure API 中心
- Azure API 管理
- Azure 应用配置
- Azure 应用程序服务
- Azure Blob 存储服务
- 用于 Redis 的 Azure 缓存
- Azure 通信服务
- Azure 容器注册表
- Azure Data Box
- 用于农业的 Azure 数据管理器
- Azure 事件网格
- Azure 事件中心
- Azure Health Data Services
- Azure IoT 中心
- Azure Key Vault
- Azure Kubernetes 服务
- Azure 机器学习
- Azure 维护配置
- Azure Maps
- Azure 媒体服务
- Azure Policy
- Azure 资源通知
- Azure 资源组
- Azure 服务总线
- Azure SignalR
- Azure 存储操作
- Azure 订阅
将系统主题视为 Azure 资源
系统主题显示为 Azure 资源,并提供以下功能:
- 在 Azure 门户中查看系统主题
- 在 Azure 门户中导出系统主题和事件订阅的资源管理器模板
- 为系统主题设置诊断日志
- 设置关于发布和传递失败的通知
注释
- 每个源只允许一个 Azure 事件网格系统主题(例如订阅、资源组等)。
- 资源组对于订阅级别系统主题而言为必需,并且无法更改(除非删除或移动到另一个订阅)。
- 事件网格在具有事件源的同一 Azure 订阅中创建系统主题资源。 例如,如果在 Azure 订阅
ContosoSubscription
中为存储帐户ContosoStorage
创建系统主题,事件网格会在其中ContosoSubscription
创建系统主题。 无法在与事件源的 Azure 订阅不同的 Azure 订阅中创建系统主题。
系统主题的生命周期
可以通过两种方式创建系统主题:
在 Azure 资源上创建事件订阅作为扩展资源,该资源会自动创建一个名称为格式的系统主题:
<Azure resource name>-<GUID>
删除该主题的最后一个事件订阅时,以这种方式创建的系统主题将会自动删除。为 Azure 资源创建系统主题,然后为该系统主题创建事件订阅。 使用此方法时,可以为系统主题指定名称。 删除最后一个事件订阅时,系统主题不会自动删除。 需要手动删除它。
使用 Azure 门户时,始终使用此方法。 使用 Azure 资源的“事件”页创建事件订阅时,系统会先创建系统主题,然后创建该主题的订阅。 可以使用 事件网格系统主题 页 显式创建系统主题,然后为该主题创建订阅。
使用 CLI、 REST 或 Azure 资源管理器模板时,可以选择上述任一方法。
重要
建议先创建系统主题,然后基于主题创建订阅,因为它是创建系统主题的最新方法。
未能创建系统主题
如果您设置 Azure 策略的方式使事件网格服务无法创建系统主题,则系统主题创建会失败。 例如,可以有一个策略,该策略只允许在订阅中创建某些类型的资源(例如:Azure 存储、Azure 事件中心等)。
在这种情况下,将保留事件流功能。 但是,系统主题的指标和诊断功能不可用。
如果需要此功能,请允许创建系统主题类型的资源,并创建缺少的系统主题,如系统主题的生命周期部分中所述。
系统主题的位置和资源组
对于位于特定区域/位置的 Azure 事件源,系统会在与 Azure 事件源相同的位置创建系统主题。 例如,如果为美国东部的 Azure Blob 存储创建事件订阅,则会在美国东部创建系统主题。 对于全局 Azure 事件源(例如 Azure 订阅、资源组或 Azure Maps),事件网格会在 全局 位置创建系统主题。
通常,系统主题是在 Azure 事件源所在的同一资源组中创建的。 对于在 Azure 订阅范围内创建的事件订阅,系统主题是在“美国西部 2”区域的 Default-EventGrid 资源组中创建的。 如果资源组不存在,Azure 事件网格会在创建系统主题之前创建它。
后续步骤
请参阅以下文章: