Compartir vía


Reacción a eventos de Azure App Configuration

Los eventos de Azure App Configuration permiten que las aplicaciones reaccionen a los cambios en los valores clave. Esto se hace sin necesidad de código complicado o servicios de sondeo costosos e ineficaces. En su lugar, los eventos se insertan a través de Azure Event Grid a los suscriptores, como Azure Functions, Azure Logic Apps o incluso a su propio agente de escucha HTTP personalizado. De forma crítica, solo paga por lo que usa.

Los eventos de Azure App Configuration se envían a Azure Event Grid, que proporciona servicios de entrega confiables a las aplicaciones a través de 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 de eventos comunes de App Configuration se incluyen actualizar la configuración de la aplicación, desencadenar implementaciones o cualquier flujo de trabajo orientado a la configuración. Cuando los cambios son poco frecuentes, pero el escenario requiere capacidad de respuesta inmediata, la arquitectura basada en eventos puede ser especialmente eficaz.

Eche un vistazo a Uso de Event Grid para las notificaciones de cambio de datos para obtener un ejemplo rápido.

Diagrama que muestra el modelo de Event Grid.

Tipos de eventos disponibles

Event Grid usa suscripciones de eventos para enrutar mensajes de eventos a los suscriptores. Azure App Configuration emite los siguientes tipos de eventos:

Tipo de evento Description
Microsoft.AppConfiguration.KeyValueModified Se genera cuando se crea o reemplaza 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 de eventos

Un evento tiene los siguientes datos de nivel superior:

Propiedad Tipo Description
source cuerda / cadena Ruta de acceso completa al recurso al origen del evento. Este campo no se puede escribir. Event Grid proporciona este valor.
subject cuerda / cadena Ruta de acceso definida por el publicador al asunto del evento.
type cuerda / cadena Uno de los tipos de eventos registrados para este origen de eventos.
time cuerda / cadena Hora en que se genera el evento en función de la hora UTC del proveedor.
id cuerda / cadena Identificador único del evento.
data objeto Datos de eventos de App Configuration.
specversion cuerda / cadena Versión de especificación del esquema de CloudEvents.

El objeto de datos tiene las siguientes propiedades:

Evento key-value

Propiedad Tipo Description
key cuerda / cadena Clave del valor de clave que se modificó o eliminó.
label cuerda / cadena Etiqueta, si existe, del valor de clave que se modificó o eliminó.
etag cuerda / cadena Para KeyValueModified la etiqueta etag del nuevo valor de clave. Para KeyValueDeleted la etag del valor de clave que se eliminó.
syncToken cuerda / cadena Token de sincronización que representa el estado del servidor después del evento key-value.

Evento snapshot

Propiedad Tipo Description
name cuerda / cadena Nombre de la instantánea que se creó o modificó.
etag cuerda / cadena Para SnapshotCreated la etiqueta de la nueva instantánea. Para SnapshotModified la etag de la instantánea que se modificó.
syncToken cuerda / cadena Token de sincronización que representa el estado del servidor después del evento de instantánea.

Evento de ejemplo

En el ejemplo siguiente se muestra el esquema de un evento modificado de clave-valor:

[{
  "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 ejemplo siguiente se muestra el esquema de un evento eliminado de clave-valor:

[{
  "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 creado por instantáneas:

[{
  "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 ejemplo siguiente se muestra el esquema de un evento modificado 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 Esquema de eventos de Azure App Configuration.

Prácticas para consumir eventos

Las aplicaciones que controlan los eventos de App Configuration deben seguir estos procedimientos recomendados:

  • Se pueden configurar varias suscripciones para enrutar eventos al mismo controlador de eventos, por lo que no asume que los eventos proceden de un origen determinado. En su lugar, compruebe el tema del mensaje para asegurarse de que la instancia de App Configuration envía el evento.
  • Compruebe y eventTypeno suponga que todos los eventos que reciba serán los tipos que espera.
  • Use los etag campos para comprender si la información sobre los objetos sigue up-to-date.
  • Use los campos del secuenciador para comprender el orden de los eventos en cualquier objeto determinado.
  • Use el campo asunto para tener acceso al valor de clave que se modificó.

Pasos siguientes

Para obtener más información sobre Event Grid y proporcionar un intento a los eventos de Azure App Configuration, consulte: