Partager via


Réaction aux événements Azure App Configuration

Les événements Azure App Configuration permettent aux applications de réagir aux modifications au niveau des paires clé-valeur. La méthode utilisée n’exige pas de faire appel à du code complexe ou à des services d’interrogation coûteux et inefficaces. Au lieu de cela, les événements sont envoyés (push) via Azure Event Grid aux abonnés, comme Azure Functions, Azure Logic Apps, ou même à votre propre écouteur HTTP personnalisé. Vous paierez uniquement pour ce que vous utiliserez.

Les événements Azure App Configuration sont envoyés à Azure Event Grid, qui fournit des services de livraison fiables à vos applications via des stratégies enrichies de nouvelle tentative et de livraison de lettres mortes. Pour plus d’informations, consultez la page Distribution et nouvelle tentative de distribution de messages avec Event Grid.

Les scénarios courants d’événement App Configuration comprennent l’actualisation des configurations d’application, le déclenchement de déploiements et tout workflow axé sur la configuration. Lorsque les modifications sont peu fréquentes, mais que votre scénario requiert une réactivité immédiate, une architecture basée sur des événements peut être particulièrement efficace.

Consultez Utiliser Event Grid pour les notifications de changement de données pour obtenir un exemple rapide.

Diagram that shows Event Grid Model.

Types d’événement disponibles

Event Grid utilise les abonnements aux événements pour acheminer les messages d’événements vers les abonnés. Azure App Configuration propose les types d’événements suivants :

Type d'événement Description
Microsoft.AppConfiguration.KeyValueModified Émis lorsqu’une valeur de clé est créée ou remplacée.
Microsoft.AppConfiguration.KeyValueDeleted Émis lorsqu’une valeur de clé est supprimée.
Microsoft.AppConfiguration.SnapshotCreated Déclenché lorsqu’une capture instantanée est créée.
Microsoft.AppConfiguration.SnapshotModified Déclenché lorsqu’une capture instantanée est modifiée.

Schéma d’événement

Un événement contient les données générales suivantes :

Propriété Type Description
source string Chemin d’accès complet à la source de l’événement. Ce champ n’est pas modifiable. Event Grid fournit cette valeur.
subject string Chemin de l’objet de l’événement, défini par le serveur de publication.
type string Un des types d’événements inscrits pour cette source d’événement.
time string L’heure à quelle l’événement est généré selon l’heure UTC du fournisseur.
id string Identificateur unique de l’événement.
data object Données de l’événement App Configuration.
specversion string Version de la spécification de schéma CloudEvents.

L’objet de données comporte les propriétés suivantes :

Événement clé-valeur

Propriété Type Description
key string La clé de la paire clé-valeur qui a été modifiée ou supprimée.
label string Le cas échéant, l’étiquette de la paire clé-valeur qui a été modifiée ou supprimée.
etag string Pour le paramètre KeyValueModified, l’etag de la nouvelle paire clé-valeur. Pour le paramètre KeyValueDeleted, l’etag de la paire clé-valeur qui a été supprimée.
syncToken string Le jeton de synchronisation représentant l’état du serveur après l’événement clé-valeur.

Événement de capture instantanée

Propriété Type Description
name string Le nom de la capture instantanée qui a été créée ou modifiée.
etag string Pour SnapshotCreated l’etag de la nouvelle capture instantanée. Pour SnapshotModified l’etag de la capture instantanée qui a été modifiée.
syncToken string Le jeton de synchronisation représentant l’état du serveur après l’événement de capture instantanée.

Exemple d’événement

L’exemple suivant montre le schéma d’un événement de valeur de clé modifié :

[{
  "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"
}]

L’exemple suivant montre le schéma d’un événement clé-valeur supprimé :

[{
  "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"
}]

L’exemple suivant montre le schéma d’un événement de capture instantanée créé :

[{
  "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"
}]

L’exemple suivant montre le schéma d’un événement de capture instantanée modifié :

[{
  "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"
}]

Pour plus d’informations, consultez Schéma d’événements Azure App Configuration.

Pratiques pour la consommation d’événements

Les applications qui gèrent les événements App Configuration doivent suivre les pratiques recommandées :

  • Plusieurs abonnements peuvent être configurés pour acheminer les événements vers le même gestionnaire d’événements. Il ne faut donc pas supposer que les événements proviennent d’une source particulière. Au lieu de cela, examinez l’objet du message pour vérifier que l’instance App Configuration envoie l’événement.
  • Vérifiez le eventType et ne prenez pas comme hypothèse que tous les événements que vous recevez seront des types que vous attendez.
  • Utilisez les champs etag pour vérifier si vos informations sur les objets sont encore à jour.
  • Utilisez les champs de séquence pour comprendre l’ordre des événements concernant un objet en particulier.
  • Le champ Objet vous permet d’accéder à la paire clé-valeur qui a été modifiée.

Étapes suivantes

Pour en savoir plus sur Event Grid et essayer les événements Azure App Configuration, consultez :