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.
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/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 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
eventType
en 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: