事件网格中的系统主题表示由 Azure 服务发布的一个或多个 events,例如Azure Storage和Azure Event Hubs。 例如,系统主题可以表示所有 Blob 事件,也可以仅表示为特定存储帐户发布的 blob 创建和 blob 删除的事件。 在此示例中,将 blob 上传到存储帐户时,Azure Storage服务会将创建的 blob 事件发布到事件网格中的系统主题,然后将事件转发到主题的 订阅器,以接收和处理该事件。
支持系统主题的 Azure 服务
下面是支持创建系统主题的Azure服务的当前列表。
- Azure App Configuration
- Azure App Service
- Azure Blob Storage
- Azure Cache for Redis
- Azure Container Registry
- Azure Event Hubs
- Azure IoT Hub
- Azure Key Vault
- Azure Machine Learning
- Azure Media Services
- Azure Policy
- Azure资源组
- Azure Service Bus
- Azure SignalR
- Azure订阅
系统主题作为Azure资源
系统主题显示为Azure资源,并提供以下功能:
- 在 Azure 门户中查看系统主题
- 在 Azure 门户中导出用于系统主题和事件订阅的 Resource Manager 模板
- 为系统主题设置诊断日志
- 设置关于发布和传递失败的通知
注释
- 每个源只允许一个Azure Event Grid系统主题(例如订阅、资源组等)。
- 资源组对于订阅级别系统主题而言为必需,并且无法更改(除非删除或移动到另一个订阅)。
- 事件网格在具有事件源的同一Azure订阅中创建系统主题资源。 例如,如果在 Azure 订阅
ContosoStorage中创建存储帐户ContosoSubscription的系统主题,事件网格会在ContosoSubscription中创建系统主题。 不能在与事件源的Azure订阅不同的Azure订阅中创建系统主题。
系统主题的生命周期
可以通过两种方式创建系统主题:
在Azure资源上创建一个 event 订阅作为扩展资源,该订阅会自动创建格式为:
<Azure resource name>-<GUID>的系统主题。 删除该主题的最后一个事件订阅时,以这种方式创建的系统主题将会自动删除。为Azure资源创建系统主题,然后为该系统主题创建事件订阅。 使用此方法时,可以为系统主题指定名称。 删除最后一个事件订阅时,系统主题不会自动删除。 需要手动删除它。
使用 Azure 门户时,始终使用此方法。 使用 Azure 资源的 Events 页创建事件订阅时首先创建系统主题,然后创建主题的订阅。 可以使用 事件网格系统主题 页 显式创建系统主题,然后为该主题创建订阅。
使用 CLI、REST 或 Azure Resource Manager template 时,可以选择上述任一方法。
重要
建议先创建系统主题,然后基于主题创建订阅,因为它是创建系统主题的最新方法。
未能创建系统主题
如果您将 Azure 策略设置得使事件网格服务无法创建系统主题,则系统主题创建将失败。 例如,可以有一个策略,该策略只允许在订阅中创建某些类型的资源(例如:Azure Storage、Azure Event Hubs等)。
在这种情况下,将保留事件流功能。 但是,系统主题的指标和诊断功能不可用。
如果需要此功能,请允许创建系统主题类型的资源,并创建缺少的系统主题,如系统主题的生命周期部分中所述。
系统主题的位置和资源组
对于位于特定区域/位置的事件源Azure,系统会在与Azure事件源相同的位置创建系统主题。 例如,如果为中国北部的 Azure Blob 存储创建事件订阅,则会在中国北部创建系统主题。 对于全局Azure事件源(如Azure订阅、资源组或Azure Maps),事件网格会在 global 位置创建系统主题。
一般情况下,系统主题是在Azure事件源所在的同一资源组中创建的。 对于在Azure订阅范围内创建的事件订阅,系统主题是在 China North 2 区域中的 Default-EventGrid 资源组中创建的。 如果资源组不存在,Azure Event Grid在创建系统主题之前创建它。
后续步骤
请参阅以下文章:
- 使用 Azure 门户创建、查看和管理系统主题。
使用 Azure CLI - 使用Azure Resource Manager模板创建事件网格系统主题