Azure 应用配置事件使应用程序能够响应键值的变化。 无需复杂的代码或成本高昂且效率低下的轮询服务即可完成此作。 相反,事件会通过 Azure 事件网格 推送到订阅者,例如 Azure Functions、 Azure 逻辑应用,甚至推送到你自己的自定义 HTTP 侦听器。 关键是,只需为使用的内容付费。
Azure 应用配置事件将发送到 Azure 事件网格,该网格通过丰富的重试策略和死信传递向应用程序提供可靠的传递服务。 有关详细信息,请参阅事件网格消息传递和重试。
常见的应用配置事件方案包括刷新应用程序配置、触发部署或任何面向配置的工作流。 如果更改不频繁,但方案需要即时响应,基于事件的体系结构可能会特别高效。
有关快速示例,请查看 使用事件网格获取数据更改通知 。
可用的 Azure 应用配置事件
事件网格使用 事件订阅将事件 消息路由到订阅服务器。 Azure 应用配置事件订阅可以包括两种类型的事件:
事件名称 Description Microsoft.AppConfiguration.KeyValueModified创建或替换键值时触发。 Microsoft.AppConfiguration.KeyValueDeleted删除键值时触发。
事件架构
Azure 应用配置事件包含响应数据更改所需的所有信息。 您可以识别应用配置事件,因为eventType属性以Microsoft.AppConfiguration开头。 有关事件网格事件属性用法的其他信息记录在 事件网格事件架构中。
资产 类型 Description 主题 字符串 发出事件的应用配置的完整 Azure 资源管理器 ID。 主题 字符串 键值(事件主题)的 URI。 事件时间 字符串 事件以 ISO 8601 格式生成的日期/时间。 eventType 字符串 Microsoft.AppConfiguration.KeyValueModified或Microsoft.AppConfiguration.KeyValueDeleted。ID 字符串 此事件的唯一标识符。 数据版本 字符串 数据对象的架构版本。 元数据版本 字符串 顶级属性的架构版本。 数据 对象 特定于 Azure 应用配置的事件数据的集合。 data.key 字符串 已修改或删除的键值键。 data.标签 字符串 已修改或删除的键值的标签(如果有)。 data.etag 字符串 对于 KeyValueModified,新键值的 etag。 对于KeyValueDeleted,被删除的键值的 etag。
下面是事件 KeyValueModified 的示例:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"topic": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"eventType": "Microsoft.AppConfiguration.KeyValueModified",
"eventTime": "2019-05-31T20:05:03Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
使用事件的做法
处理应用配置事件的应用程序应遵循以下建议的做法:
- 可以将多个订阅配置为将事件路由到同一事件处理程序,因此不要假定事件来自特定源。 相反,请检查消息的主题,以确保应用配置实例正在发送事件。
- 检查,
eventType并且不要假定你收到的所有事件都是所需的类型。 - 使用
etag字段了解有关对象的信息是否仍 up-to-date。 - 使用 sequencer 字段了解任何特定对象上的事件顺序。
- 使用主题字段访问修改的键值。
后续步骤
若要详细了解事件网格并尝试 Azure 应用配置事件,请参阅: