Teilen über


Reagieren auf Azure App-Konfigurationsereignisse

Azure App-Konfigurationsereignisse ermöglichen Es Anwendungen, auf Änderungen in Schlüsselwerten zu reagieren. Dies geschieht ohne die Notwendigkeit komplizierter Code oder teurer und ineffizienter Abrufdienste. Stattdessen werden Ereignisse über Azure Event Grid an Abonnenten übertragen, z. B. Azure Functions, Azure Logic Apps oder sogar an Ihren eigenen benutzerdefinierten HTTP-Listener. Kritisch zahlen Sie nur für ihre Nutzung.

Azure App-Konfigurationsereignisse werden an das Azure Event Grid gesendet, das zuverlässige Zustellungsdienste für Ihre Anwendungen über umfangreiche Wiederholungsrichtlinien und Die Zustellung von Inschriftschreiben bereitstellt. Weitere Informationen finden Sie unter Event Grid – Nachrichtenübermittlung und -wiederholung.

Häufige Ereignisszenarien für die App-Konfiguration umfassen das Aktualisieren der Anwendungskonfiguration, das Auslösen von Bereitstellungen oder einen konfigurationsorientierten Workflow. Wenn Änderungen selten sind, ihr Szenario jedoch eine sofortige Reaktionsfähigkeit erfordert, kann die ereignisbasierte Architektur besonders effizient sein.

Sehen Sie sich " Ereignisraster verwenden" für Datenänderungsbenachrichtigungen für ein schnelles Beispiel an.

Diagramm, das das Ereignisrastermodell zeigt.

Verfügbare Ereignistypen

Ereignisraster verwendet Ereignisabonnements , um Ereignisnachrichten an Abonnenten weiterzuleiten. Die Azure App-Konfiguration gibt die folgenden Ereignistypen aus:

Ereignistyp Description
Microsoft.AppConfiguration.KeyValueModified Wird ausgelöst, wenn ein Schlüsselwert erstellt oder ersetzt wird.
Microsoft.AppConfiguration.KeyValueDeleted Wird ausgelöst, wenn ein Schlüsselwert 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 enthält die folgenden Daten auf oberster Ebene:

Eigentum Typ Description
source Schnur Vollständiger Ressourcenpfad zur Ereignisquelle. Dieses Feld kann nicht geschrieben werden. Das Ereignisraster stellt diesen Wert bereit.
subject Schnur Publisher-definierter Pfad zum Ereignisbetreff.
type Schnur Einer der registrierten Ereignistypen für diese Ereignisquelle.
time Schnur Die Zeit, die das Ereignis basierend auf der UTC-Zeit des Anbieters generiert wird.
id Schnur Eindeutiger Bezeichner für das Ereignis.
data Objekt App-Konfigurationsereignisdaten.
specversion Schnur CloudEvents-Schemaspezifikationsversion.

Das Datenobjekt verfügt über die folgenden Eigenschaften:

Key-Value-Ereignis

Eigentum Typ Description
key Schnur Der Schlüssel des Schlüsselwerts, der geändert oder gelöscht wurde.
label Schnur Die Bezeichnung (falls vorhanden) des Schlüsselwerts, der geändert oder gelöscht wurde.
etag Schnur Für KeyValueModified das Etag des neuen Schlüsselwerts. Für KeyValueDeleted das Etag des schlüsselwerts, der gelöscht wurde.
syncToken Schnur Das Synchronisierungstoken, das den Serverstatus nach dem Schlüsselwertereignis darstellt.

Snapshot-Ereignis

Eigentum Typ Description
name Schnur Der Name der Momentaufnahme, die erstellt oder geändert wurde.
etag Schnur Für SnapshotCreated das Etag der neuen Momentaufnahme. Für SnapshotModified das Etag der momentaufnahme, die geändert wurde.
syncToken Schnur Das Synchronisierungstoken, das den Serverstatus nach dem Snapshot-Ereignis darstellt.

Beispielereignis

Das folgende Beispiel zeigt das Schema eines geänderten Schlüsselwertereignisses:

[{
  "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 gelöschten Schlüsselwertereignisses:

[{
  "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 Snapshotereignisses:

[{
  "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 Snapshot-Ereignisses:

[{
  "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 im Azure App-Konfigurationsereignisseschema.

Methoden für das Verwenden von Ereignissen

Anwendungen, die App-Konfigurationsereignisse behandeln, sollten die folgenden empfohlenen Methoden befolgen:

  • Mehrere Abonnements können so konfiguriert werden, dass Ereignisse an denselben Ereignishandler weitergeleitet 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-Konfigurationsinstanz das Ereignis sendet.
  • Überprüfen Sie das eventType, und gehen Sie nicht davon aus, dass alle empfangenen Ereignisse die typen sind, die Sie erwarten.
  • Verwenden Sie die etag Felder, um zu verstehen, ob Ihre Informationen zu Objekten noch up-to-date sind.
  • Verwenden Sie die Sequenzerfelder, um die Reihenfolge der Ereignisse für ein bestimmtes Objekt zu verstehen.
  • Verwenden Sie das Betrefffeld, um auf den geänderten Schlüsselwert zuzugreifen.

Nächste Schritte

Weitere Informationen zum Ereignisraster und zum Probieren von Azure App-Konfigurationsereignissen finden Sie unter: