Reageren op Azure-app configuratie-gebeurtenissen

Azure-app Configuratiegebeurtenissen stellen toepassingen in staat om te reageren op wijzigingen in sleutelwaarden. Dit wordt gedaan zonder dat ingewikkelde code of dure en inefficiƫnte pollingservices nodig zijn. In plaats daarvan worden gebeurtenissen via Azure Event Grid gepusht naar abonnees, zoals Azure Functions, Azure Logic Apps of zelfs naar uw eigen aangepaste HTTP-listener. Kritiek is dat u alleen betaalt voor wat u gebruikt.

Azure-app Configuratiegebeurtenissen worden verzonden naar Azure Event Grid, dat betrouwbare leveringsservices aan uw toepassingen biedt via uitgebreid beleid voor opnieuw proberen en bezorging van dode brieven. Zie De bezorging van Event Grid-berichten en probeer het opnieuw voor meer informatie.

Veelvoorkomende App Configuration-gebeurtenisscenario's omvatten het vernieuwen van de toepassingsconfiguratie, het activeren van implementaties of een configuratiegerichte werkstroom. Wanneer wijzigingen onregelmatig zijn, maar uw scenario onmiddellijke reactiesnelheid vereist, kan architectuur op basis van gebeurtenissen met name efficiƫnt zijn.

Bekijk Event Grid gebruiken voor meldingen over gegevenswijziging voor een snel voorbeeld.

Diagram that shows Event Grid Model.

Beschikbare gebeurtenistypen

Event Grid maakt gebruik van gebeurtenisabonnementen om gebeurtenisberichten naar abonnees te routeren. Azure-app Configuration verzendt de volgende gebeurtenistypen:

Gebeurtenistype Beschrijving
Microsoft.AppConfiguration.KeyValueModified Gegenereerd wanneer een sleutelwaarde wordt gemaakt of vervangen.
Microsoft.AppConfiguration.KeyValueDeleted Gegenereerd wanneer een sleutelwaarde wordt verwijderd.
Microsoft.AppConfiguration.SnapshotCreated Wordt gegenereerd wanneer er een momentopname wordt gemaakt.
Microsoft.AppConfiguration.SnapshotModified Wordt gegenereerd wanneer een momentopname wordt gewijzigd.

Gebeurtenisschema

Een gebeurtenis bevat de volgende gegevens op het hoogste niveau:

Eigenschap Type Omschrijving
source tekenreeks Volledig resourcepad naar de gebeurtenisbron. Dit veld kan niet worden geschreven. Event Grid biedt deze waarde.
subject tekenreeks Het door de uitgever gedefinieerde pad naar het gebeurtenisonderwerp.
type tekenreeks Een van de geregistreerde gebeurtenistypen voor deze gebeurtenisbron.
time tekenreeks Het tijdstip waarop de gebeurtenis wordt gegenereerd op basis van de UTC-tijd van de provider.
id tekenreeks Unieke id voor de gebeurtenis.
data object Gebeurtenisgegevens van App Configuration.
specversion tekenreeks CloudEvents schemaspecificatieversie.

Het gegevensobject heeft de volgende eigenschappen:

Sleutelwaardegebeurtenis

Eigenschap Type Omschrijving
key tekenreeks De sleutel van de sleutelwaarde die is gewijzigd of verwijderd.
label tekenreeks Het label, indien van toepassing, van de sleutelwaarde die is gewijzigd of verwijderd.
etag tekenreeks Voor KeyValueModified de etag van de nieuwe sleutelwaarde. Voor KeyValueDeleted de etag van de sleutelwaarde die is verwijderd.
syncToken tekenreeks Het synchronisatietoken dat de serverstatus weergeeft na de sleutelwaardegebeurtenis.

Momentopname-gebeurtenis

Eigenschap Type Omschrijving
name tekenreeks De naam van de momentopname die is gemaakt of gewijzigd.
etag tekenreeks Voor SnapshotCreated de etag van de nieuwe momentopname. Voor SnapshotModified de etag van de momentopname die is gewijzigd.
syncToken tekenreeks Het synchronisatietoken dat de serverstatus weergeeft na de momentopname-gebeurtenis.

Voorbeeld van een gebeurtenis

In het volgende voorbeeld ziet u het schema van een gewijzigde sleutelwaardegebeurtenis:

[{
  "id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
  "source": "/subscriptions/00000000-0000-0000-0000-000000000000/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"
}]

In het volgende voorbeeld ziet u het schema van een verwijderde sleutelwaardegebeurtenis:

[{
  "id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
  "source": "/subscriptions/00000000-0000-0000-0000-000000000000/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"
}]

In het volgende voorbeeld ziet u het schema van een gemaakte gebeurtenis voor een momentopname:

[{
  "source": "/subscriptions/00000000-0000-0000-0000-000000000000/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"
}]

In het volgende voorbeeld ziet u het schema van een gewijzigde gebeurtenis voor een momentopname:

[{
  "source": "/subscriptions/00000000-0000-0000-0000-000000000000/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"
}]

Zie Azure-app Schema voor configuratie-gebeurtenissen voor meer informatie.

Procedures voor het verbruik van gebeurtenissen

Toepassingen die App Configuration-gebeurtenissen verwerken, moeten de volgende aanbevolen procedures volgen:

  • Meerdere abonnementen kunnen worden geconfigureerd om gebeurtenissen te routeren naar dezelfde gebeurtenis-handler, dus neem niet aan dat gebeurtenissen afkomstig zijn van een bepaalde bron. Controleer in plaats daarvan het onderwerp van het bericht om ervoor te zorgen dat het App Configuration-exemplaar de gebeurtenis verzendt.
  • Controleer de eventTypeen neem niet aan dat alle gebeurtenissen die u ontvangt, de typen zijn die u verwacht.
  • Gebruik de etag velden om te begrijpen of uw informatie over objecten nog steeds up-to-date is.
  • Gebruik de sequencer-velden om inzicht te krijgen in de volgorde van gebeurtenissen op een bepaald object.
  • Gebruik het onderwerpveld om toegang te krijgen tot de sleutelwaarde die is gewijzigd.

Volgende stappen

Zie voor meer informatie over Event Grid en om Azure-app Configuratie-gebeurtenissen eens te proberen: