Dela 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 avancerade återförsöksprinciper och dead-letter-köleverans. 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 som visar 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 Description
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:

Fastighet Typ Description
source snöre Fullständig resurssökväg till händelsekällan. Det här fältet kan inte skrivas. Event Grid tillhandahåller det här värdet.
subject snöre Användardefinierad sökväg till händelsens ämne.
type snöre En av de registrerade händelsetyperna för den här händelsekällan.
time snöre Den tid då händelsen genereras baserat på leverantörens UTC-tid.
id snöre Unik identifierare för händelsen.
data objekt Händelsedata för App Configuration.
specversion snöre CloudEvents schemaspecifikationsversion.

Dataobjektet har följande egenskaper:

Nyckelvärdeshändelse

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

Snapshot-händelse

Fastighet Typ Description
name snöre Namnet på ögonblicksbilden som skapades eller ändrades.
etag snöre Här är SnapshotCreated etag för den nya ögonblicksbilden. För SnapshotModified etag för ögonblicksbilden som ändrades.
syncToken snöre 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/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"
}]

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

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

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

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

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

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

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

Rutiner för att hantera 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.
  • Kontrollera eventType och anta inte att alla händelser som du får är av de typer du förväntar dig.
  • Använd fälten etag för att förstå om din information om objekt fortfarande är up-to-date.
  • 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: