Share via


Reagera på Azure App Configuration-händelser

Med Azure App Configuration-händelser kan program reagera på ändringar i nyckelvärden. Detta görs utan att behöva komplicerad kod eller dyra och ineffektiva avsökningstjänster. I stället skickas händelser via Azure Event Grid till prenumeranter, till exempel Azure Functions, Azure Logic Apps eller till och med till din egen anpassade HTTP-lyssnare. Kritiskt är att du bara betalar för det du använder.

Azure App Configuration-händelser skickas till Azure Event Grid, som tillhandahåller tillförlitliga leveranstjänster till dina program genom omfattande återförsöksprinciper och leverans med obeställbara meddelanden. Mer information finns i Leverans av Event Grid-meddelanden och försök igen.

Vanliga appkonfigurationshändelsescenarier är uppdatering av programkonfiguration, utlösande distributioner eller valfritt konfigurationsorienterat arbetsflöde. När ändringar är ovanliga, men ditt scenario kräver omedelbar svarstid, kan händelsebaserad arkitektur vara särskilt effektiv.

Ta en titt på Använda Event Grid för meddelanden om dataändring för ett snabbt exempel.

Diagram that shows Event Grid Model.

Tillgängliga händelsetyper

Event Grid använder händelseprenumerationer för att dirigera händelsemeddelanden till prenumeranter. Azure App Configuration genererar följande händelsetyper:

Händelsetyp beskrivning
Microsoft.AppConfiguration.KeyValueModified Utlöses när ett nyckelvärde skapas eller ersätts.
Microsoft.AppConfiguration.KeyValueDeleted Utlöses när ett nyckelvärde tas bort.
Microsoft.AppConfiguration.SnapshotCreated Utlöses när en ögonblicksbild skapas.
Microsoft.AppConfiguration.SnapshotModified Utlöses när en ögonblicksbild ändras.

Händelseschema

En händelse har följande data på den översta nivån:

Property Type Description
source sträng Fullständig resurssökväg till händelsekällan. Det här fältet kan inte skrivas. Event Grid ger det här värdet.
subject sträng Utgivardefinierad sökväg till händelseobjektet.
type sträng En av de registrerade händelsetyperna för den här händelsekällan.
time sträng Den tid då händelsen genereras baserat på leverantörens UTC-tid.
id sträng Unik identifierare för händelsen.
data objekt Händelsedata för App Configuration.
specversion sträng CloudEvents schemaspecifikationsversion.

Dataobjektet har följande egenskaper:

Nyckelvärdeshändelse

Property Type Description
key sträng Nyckeln för nyckelvärdet som ändrades eller togs bort.
label sträng Etiketten, om någon, för nyckelvärdet som ändrades eller togs bort.
etag sträng För KeyValueModified etag för det nya nyckelvärdet. För KeyValueDeleted etag för nyckelvärdet som togs bort.
syncToken sträng Synkroniseringstoken som representerar servertillståndet efter nyckel/värde-händelsen.

Händelse för ögonblicksbild

Property Type Description
name sträng Namnet på ögonblicksbilden som skapades eller ändrades.
etag sträng För SnapshotCreated etag för den nya ögonblicksbilden. För SnapshotModified etag för ögonblicksbilden som ändrades.
syncToken sträng Synkroniseringstoken som representerar servertillståndet efter händelsen med ögonblicksbilden.

Exempelhändelse

I följande exempel visas schemat för en ändrad nyckel/värde-händelse:

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

I följande exempel visas schemat för en nyckel/värde-borttagen händelse:

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

I följande exempel visas schemat för en händelse som skapats av en ögonblicksbild:

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

I följande exempel visas schemat för en händelse som ändrats av en ögonblicksbild:

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

Mer information finns i Händelseschema för Azure App Configuration.

Metoder för att använda händelser

Program som hanterar appkonfigurationshändelser bör följa dessa rekommenderade metoder:

  • Flera prenumerationer kan konfigureras för att dirigera händelser till samma händelsehanterare, så anta inte att händelser kommer från en viss källa. Kontrollera i stället ämnet för meddelandet för att se till att appkonfigurationsinstansen skickar händelsen.
  • eventTypeKontrollera , och anta inte att alla händelser som du får är de typer som du förväntar dig.
  • Använd fälten etag för att förstå om din information om objekt fortfarande är uppdaterad.
  • Använd sekvenserarens fält för att förstå ordningen på händelser för ett visst objekt.
  • Använd ämnesfältet för att komma åt nyckelvärdet som ändrades.

Nästa steg

Mer information om Event Grid och hur du ger Azure App Configuration-händelser ett försök finns i: