Reagieren auf Azure App Configuration-Ereignisse

Azure App Configuration-Ereignisse ermöglichen es Anwendungen, auf Schlüssel-Wert-Änderungen zu reagieren – ganz ohne komplizierten Code oder teure und ineffiziente Abrufdienste. Stattdessen werden Ereignisse über Azure Event Grid an Abonnenten wie Azure Functions, Azure Logic Apps oder sogar Ihren eigenen benutzerdefinierten HTTP-Listener gepusht. Vor allem bezahlen Sie nur für die tatsächliche Nutzung.

Azure App Configuration-Ereignisse werden an den Azure Event Grid-Dienst gesendet, der dank umfangreicher Wiederholungsrichtlinien und der Zustellung unzustellbarer Nachrichten zuverlässige Zustelldienste für Ihre Anwendungen bietet. Weitere Informationen finden Sie unter Event Grid – Nachrichtenübermittlung und -wiederholung.

Zu gängigen Szenarien mit App-Konfigurationsereignissen zählen beispielsweise das Aktualisieren der Anwendungskonfiguration, das Auslösen von Bereitstellungen sowie andere konfigurationsorientierte Workflows. Wenn Änderungen selten sind, aber Ihr Szenario die sofortige Reaktion erfordert, kann die ereignisbasierte Architektur besonders effizient sein.

Ein kurzes Beispiel finden Sie unter Verwenden von Event Grid für Benachrichtigungen bei Änderungen von Daten.

Diagram that shows Event Grid Model.

Verfügbare Ereignistypen

Event Grid verwendet Ereignisabonnements zum Weiterleiten von Ereignisnachrichten an Abonnenten. Azure App Configuration gibt die folgenden Ereignistypen aus:

Ereignistyp BESCHREIBUNG
Microsoft.AppConfiguration.KeyValueModified Wird ausgelöst, wenn ein Schlüssel-Wert-Paar erstellt oder ersetzt wird.
Microsoft.AppConfiguration.KeyValueDeleted Wird ausgelöst, wenn ein Schlüssel-Wert-Paar gelöscht wird.
Microsoft.AppConfiguration.SnapshotCreated Wird ausgelöst, wenn eine Momentaufnahme erstellt wird.
Microsoft.AppConfiguration.SnapshotModified Wird ausgelöst, wenn eine Momentaufnahme geändert wird.

Ereignisschema

Ein Ereignis weist die folgenden Daten auf oberster Ebene aus:

Eigenschaft Typ Beschreibung
source Zeichenfolge Vollständiger Ressourcenpfaf zur Ereignisquelle. Dieses Feld ist nicht beschreibbar. Dieser Wert wird von Event Grid bereitgestellt.
subject Zeichenfolge Vom Herausgeber definierter Pfad zum Ereignisbetreff
type Zeichenfolge Einer der registrierten Ereignistypen für die Ereignisquelle.
time Zeichenfolge Die Zeit, in der das Ereignis generiert wird, basierend auf der UTC-Zeit des Anbieters.
id Zeichenfolge Eindeutiger Bezeichner für das Ereignis.
data Objekt (object) App Configuration-Ereignisdaten.
specversion Zeichenfolge Version der CloudEvents-Schemaspezifikation.

Das Datenobjekt weist die folgenden Eigenschaften auf:

Schlüssel-Wert-Ereignis

Eigenschaft Typ Beschreibung
key Zeichenfolge Der Schlüssel des Schlüssel-Wert-Paars, das geändert oder gelöscht wurde.
label Zeichenfolge Die Bezeichnung (sofern vorhanden) des Schlüssel-Wert-Paars, das geändert oder gelöscht wurde.
etag Zeichenfolge Für KeyValueModified: Das ETag des neuen Schlüssel-Wert-Paars. Für KeyValueDeleted: Das ETag des gelöschten Schlüssel-Wert-Paars.
syncToken Zeichenfolge Das Synchronisierungstoken, das den Serverstatus nach dem Schlüsselwertereignis darstellt.

Momentaufnahmenereignis

Eigenschaft Typ Beschreibung
name string Der Name der Momentaufnahme, die erstellt oder geändert wurde.
etag Zeichenfolge Für SnapshotCreated das Etag der neuen Momentaufnahme. Für SnapshotModified das Etag der Momentaufnahme, die geändert wurde.
syncToken Zeichenfolge Das Synchronisierungstoken, das den Serverstatus nach dem Momentaufnahme-Ereignis darstellt.

Beispielereignis

Das folgende Beispiel zeigt das Schema eines Ereignisses aufgrund eines geänderten Schlüssel-Wert-Paars:

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

Das folgende Beispiel zeigt das Schema eines Ereignisses aufgrund eines gelöschten Schlüssel-Wert-Paars:

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

Das folgende Beispiel zeigt das Schema eines erstellten Momentaufnahme-Ereignis:

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

Das folgende Beispiel zeigt das Schema eines geänderten Momentaufnahme-Ereignis:

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

Weitere Informationen finden Sie unter Azure Event Grid-Ereignisschema für Azure App Configuration.

Methoden zum Nutzen von Ereignissen

Anwendungen, die App Configuration-Ereignisse behandeln, sollten diese empfohlenen Methoden verwenden:

  • Mehrere Abonnements können zum Weiterleiten von Ereignissen an denselben Ereignishandler konfiguriert werden. Gehen Sie daher nicht davon aus, dass Ereignisse aus einer bestimmten Quelle stammen. Überprüfen Sie stattdessen das Thema der Nachricht, um sicherzustellen, dass die App Configuration-Instanz das Ereignis sendet.
  • Überprüfen Sie eventType, und gehen Sie nicht davon aus, dass alle Ereignisse, die Sie erhalten, den von Ihnen erwarteten Typen entsprechen.
  • Verwenden Sie die etag-Felder, um zu erfahren, ob Ihre Informationen zu Objekten noch auf dem aktuellen Stand sind.
  • Verwenden Sie die sequencer-Felder, um die Reihenfolge der Ereignisse für ein bestimmtes Objekt zu verstehen.
  • Verwenden Sie das subject-Feld, um auf das geänderte Schlüssel-Wert-Paar zuzugreifen.

Nächste Schritte

Um mehr über Event Grid zu erfahren und Azure App Configuration-Ereignisse auszuprobieren, informieren Sie sich unter: