Delen via


Reageren op Azure App Configuration-gebeurtenissen

Met Azure App Configuration-gebeurtenissen kunnen toepassingen 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 Configuration-gebeurtenissen worden verzonden naar Azure Event Grid, dat betrouwbare leveringsservices aan uw toepassingen biedt via een 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 met 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 Description
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:

Vastgoed Typologie Description
source touw Volledig resourcepad naar de gebeurtenisbron. Dit veld kan niet worden geschreven. Event Grid biedt deze waarde.
subject touw Door publisher gedefinieerd pad naar het gebeurtenisonderwerp.
type touw Een van de geregistreerde gebeurtenistypen voor deze gebeurtenisbron.
time touw Het tijdstip waarop de gebeurtenis wordt gegenereerd op basis van de UTC-tijd van de provider.
id touw Unieke id voor de gebeurtenis.
data Voorwerp Gebeurtenisgegevens van App Configuration.
specversion touw CloudEvents schemaspecificatieversie.

Het gegevensobject heeft de volgende eigenschappen:

Sleutelwaardegebeurtenis

Vastgoed Typologie Description
key touw De sleutel van de sleutelwaarde die is gewijzigd of verwijderd.
label touw Het label, indien van toepassing, van de sleutelwaarde die is gewijzigd of verwijderd.
etag touw Voor KeyValueModified de etag van de nieuwe sleutelwaarde. Voor KeyValueDeleted de etag van de sleutelwaarde die is verwijderd.
syncToken touw Het synchronisatietoken dat de serverstatus weergeeft na de sleutelwaardegebeurtenis.

Momentopname-gebeurtenis

Vastgoed Typologie Description
name touw De naam van de momentopname die is gemaakt of gewijzigd.
etag touw Voor SnapshotCreated de etag van de nieuwe momentopname. Voor SnapshotModified de etag van de momentopname die is gewijzigd.
syncToken touw 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/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"
}]

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

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

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

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

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

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

Zie het azure App Configuration-gebeurtenissenschema 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 Configuration-gebeurtenissen eens te proberen: