Azure 事件网格中的系统主题
事件网格中的系统主题表示由 Azure 服务(如 Azure 存储和 Azure 事件中心)发布的一个或多个事件。 例如,一个系统主题可以表示已为特定存储帐户发布的所有 Blob 事件或仅“Blob 已创建”和“Blob 已删除”事件 。 在此示例中,当 Blob 上传到存储帐户时,Azure 存储服务会将“Blob 已创建”事件发布到事件网格中的系统主题,然后,事件网格会将该事件转发给接收和处理该事件的主题订阅服务器。
支持系统主题的 Azure 服务
下面是支持创建系统主题的 Azure 服务的当前列表。
- Azure 应用配置
- Azure 应用服务
- Azure Blob 存储
- 用于 Redis 的 Azure 缓存
- Azure 容器注册表
- Azure 事件中心
- Azure IoT 中心
- Azure Key Vault
- Azure 机器学习
- Azure 媒体服务
- Azure Policy
- Azure 资源组
- Azure 服务总线
- Azure SignalR
- 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 Maps 等全局 Azure 事件源,事件网格会在全局位置创建系统主题。
通常,系统主题在 Azure 事件源所在的资源组中创建。 对于在 Azure 订阅范围内创建的事件订阅,系统主题是在“中国北部 2”区域的资源组“Default-EventGrid”下创建的 。 如果该资源组不存在,则 Azure 事件网格会在创建系统主题之前创建该资源组。
后续步骤
请参阅以下文章: