Reacción ante los eventos de Azure App Configuration
Los eventos de Azure App Configuration permiten a las aplicaciones reaccionar ante los cambios en los pares clave-valor. Esto se consigue sin necesidad de código complejo ni de servicios de sondeo costosos e ineficientes. En su lugar, se insertan eventos mediante Azure Event Grid a en los suscriptores, como Azure Functions, Azure Logic Apps o incluso su propio cliente de escucha HTTP. De forma crítica, solo paga por lo que utiliza.
Los eventos de Azure App Configuration se envían a Azure Event Grid, que proporciona servicios de entrega confiables para sus aplicaciones mediante directivas de reintento enriquecidas y entrega de mensajes fallidos. Para más información, vea Entrega y reintento de entrega de mensajes de Event Grid.
Entre los escenarios comunes de eventos de App Configuration se incluyen la actualización de la configuración de la aplicación, el desencadenamiento de implementaciones o cualquier flujo de trabajo de configuración. Cuando se realizan pocos cambios en el escenario, pero se requiere una respuesta inmediata, la arquitectura basada en eventos puede ser especialmente eficaz.
Para ver un ejemplo rápido, eche un vistazo a Uso de Event Grid para las notificaciones de cambio de datos.
Tipos de eventos disponibles
Event Grid usa las suscripciones a eventos para enrutar los mensajes de eventos a los suscriptores. La configuración de Azure App Configuration emite los siguientes tipos de evento:
Tipo de evento | Descripción |
---|---|
Microsoft.AppConfiguration.KeyValueModified | Se genera cuando se crea o se sustituye un valor de clave. |
Microsoft.AppConfiguration.KeyValueDeleted | Se genera cuando se elimina un valor de clave. |
Microsoft.AppConfiguration.SnapshotCreated | Se genera cuando se crea una instantánea. |
Microsoft.AppConfiguration.SnapshotModified | Se genera cuando se modifica una instantánea. |
Esquema del evento
Un evento tiene los siguientes datos de nivel superior:
Propiedad | Tipo | Description |
---|---|---|
source |
string | Ruta de acceso completa a los recursos del origen del evento. En este campo no se puede escribir. Event Grid proporciona este valor. |
subject |
string | Ruta al asunto del evento definida por el anunciante. |
type |
string | Uno de los tipos de eventos registrados para este origen de eventos. |
time |
string | La hora de generación del evento en función de la hora UTC del proveedor. |
id |
string | Identificador único para el evento |
data |
object | Datos del evento de App Configuration. |
specversion |
string | Versión de especificación del esquema CloudEvents. |
El objeto data tiene las siguientes propiedades:
Evento key-value
Propiedad | Tipo | Description |
---|---|---|
key |
string | Clave del valor clave que se ha modificado o eliminado. |
label |
string | Etiqueta, si procede, del valor clave que se ha modificado o eliminado. |
etag |
string | Para KeyValueModified , la etag del nuevo valor clave. Para KeyValueDeleted , la etag del valor clave que se ha eliminado. |
syncToken |
cadena | Token de sincronización que representa el estado del servidor después del evento key-value. |
Flujo de eventos
Propiedad | Tipo | Description |
---|---|---|
name |
cadena | Nombre de la instantánea que se creó o modificó. |
etag |
cadena | Para SnapshotCreated , la ETag del nuevo valor clave. Para SnapshotModified la ETag de la instantánea que se modificó. |
syncToken |
cadena | Token de sincronización que representa el estado del servidor después del evento de instantánea. |
Evento de ejemplo
En el siguiente ejemplo se muestra el esquema de un evento modificado de valor clave:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueModified",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
En el siguiente ejemplo se muestra el esquema de un evento de eliminación de key-value:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kv/Foo?label=FizzBuzz",
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"type": "Microsoft.AppConfiguration.KeyValueDeleted",
"time": "2019-05-31T20:05:03Z",
"specversion": "1.0"
}]
En el ejemplo siguiente se muestra el esquema de un evento de creación de instantánea:
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/kvsnapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotCreated",
"time": "2023-09-02T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
En el siguiente ejemplo se muestra el esquema de un evento de modificación de instantánea:
[{
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/testrg/providers/microsoft.appconfiguration/configurationstores/contoso",
"subject": "https://contoso.azconfig.io/snapshots/Foo",
"type": "Microsoft.AppConfiguration.SnapshotModified",
"time": "2023-09-03T20:05:03.0000000Z",
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"data": {
"name": "Foo",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0",
"syncToken": "zAJw6V16=Njo1IzUxNjQ2NzM=;sn=5164673"
},
"specversion": "1.0"
}]
Para más información, consulte el esquema de los eventos de Azure App Configuration.
Prácticas para consumir eventos
Las aplicaciones que administran los eventos de App Configuration deben seguir estos procedimientos recomendados:
- Se pueden configurar varias suscripciones para enrutar los eventos al mismo controlador de eventos, por lo que no hay que asumir que los eventos procedan de un origen determinado. En su lugar, consulte el tema del mensaje para asegurarse de que la instancia de App Configuration es la que envía el evento.
- Compruebe
eventType
y no asuma que todos los eventos que recibe son del tipo que espera. - Use los campos
etag
para saber si la información sobre los objetos está aún actualizada. - Utilice los campos del secuenciador para conocer el orden de los eventos en cualquier objeto determinado.
- Utilice el campo del asunto para acceder al par clave-valor que se ha modificado.
Pasos siguientes
Para más información sobre Event Grid y probar los eventos de Azure App Configuration, consulte: