Reagálás Azure-alkalmazás konfigurációs eseményekre

Azure-alkalmazás konfigurációs események lehetővé teszik, hogy az alkalmazások reagáljanak a kulcsértékek változásaira. Ez bonyolult kód vagy költséges és nem hatékony lekérdezési szolgáltatások nélkül történik. Ehelyett az eseményeket az Azure Event Griden keresztül küldi el az előfizetőknek, például az Azure Functionsnek, az Azure Logic Appsnek vagy akár a saját egyéni HTTP-figyelőjének. Kritikus fontosságú, hogy csak azért kell fizetnie, amit használ.

Azure-alkalmazás konfigurációs eseményeket az Azure Event Grid küldi el, amely megbízható kézbesítési szolgáltatásokat nyújt az alkalmazásoknak részletes újrapróbálkozési szabályzatokkal és kézbesítetlen levelek kézbesítésével. További információ: Event Grid üzenetkézbesítés és újrapróbálkozás.

Az alkalmazáskonfiguráció gyakori eseményforgatókönyvei közé tartozik az alkalmazáskonfiguráció frissítése, az üzembe helyezések aktiválása vagy bármilyen konfigurációorientált munkafolyamat. Ha a módosítások ritkán fordulnak elő, de a forgatókönyv azonnali válaszkészséget igényel, az eseményalapú architektúra különösen hatékony lehet.

Egy gyors példáért tekintse meg az Event Grid használata adatmódosítási értesítésekhez című témakört.

Diagram that shows Event Grid Model.

Elérhető eseménytípusok

Az Event Grid esemény-előfizetésekkel irányítja át az eseményüzeneteket az előfizetőknek. Azure-alkalmazás konfiguráció a következő eseménytípusokat bocsátja ki:

Eseménytípus Leírás
Microsoft.AppConfiguration.KeyValueModified Kulcs-érték létrehozásakor vagy cseréjekor történik.
Microsoft.AppConfiguration.KeyValueDeleted Kulcsérték törlésekor történik.
Microsoft.AppConfiguration.SnapshotCreated Pillanatkép létrehozásakor merül fel.
Microsoft.AppConfiguration.SnapshotModified Pillanatkép módosításakor emelik ki.

Eseményséma

Egy esemény a következő legfelső szintű adatokkal rendelkezik:

Tulajdonság Típus Leírás
source húr Az eseményforrás teljes erőforrás-elérési útja. Ez a mező nem írható. Az értéket az Event Grid adja meg.
subject húr Az esemény tárgyra mutató, a közzétevő által megadott elérési út.
type húr Az eseményforráshoz felvett eseménytípusok egyike.
time húr Az esemény létrehozásának időpontja a szolgáltató UTC-ideje alapján.
id húr Az esemény egyedi azonosítója.
data object Alkalmazáskonfigurációs eseményadatok.
specversion húr A CloudEvents sémaspecifikációs verziója.

Az adatobjektum a következő tulajdonságokkal rendelkezik:

Kulcs-érték esemény

Tulajdonság Típus Leírás
key húr A módosított vagy törölt kulcsérték kulcsa.
label húr A módosított vagy törölt kulcsérték címkéje, ha van ilyen.
etag húr Az KeyValueModified új kulcs-érték etagje. A KeyValueDeleted törölt kulcs-érték etagje esetében.
syncToken húr A kiszolgáló állapotát a kulcs-érték esemény után jelölő szinkronizálási jogkivonat.

Pillanatkép-esemény

Tulajdonság Típus Leírás
name húr A létrehozott vagy módosított pillanatkép neve.
etag húr Az SnapshotCreated új pillanatkép etagje számára. A módosított pillanatkép etagjének esetében SnapshotModified .
syncToken húr A pillanatkép-esemény után a kiszolgáló állapotát jelképező szinkronizálási jogkivonat.

Példaesemény

Az alábbi példa egy kulcs-érték módosított esemény sémáját mutatja be:

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

Az alábbi példa egy kulcs-érték törölt esemény sémáját mutatja be:

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

Az alábbi példa egy pillanatkép által létrehozott esemény sémáját mutatja be:

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

Az alábbi példa egy pillanatkép-módosított esemény sémáját mutatja be:

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

További információ: Azure-alkalmazás Konfigurációs események sémája.

Az események felhasználásának gyakorlata

Az alkalmazáskonfigurációs eseményeket kezelő alkalmazásoknak az alábbi ajánlott eljárásokat kell követniük:

  • Több előfizetés is konfigurálható úgy, hogy az eseményeket ugyanahhoz az eseménykezelőhöz irányítsa, ezért ne feltételezze, hogy az események egy adott forrásból származnak. Ehelyett ellenőrizze az üzenet témakörét, hogy az alkalmazáskonfigurációs példány elküldi-e az eseményt.
  • Ellenőrizze a eventTypeelemet, és ne feltételezze, hogy az összes kapott esemény a várt típus lesz.
  • A mezők segítségével etag megtudhatja, hogy az objektumok adatai továbbra is naprakészek-e.
  • A szekvenciamezők segítségével megismerheti az egyes objektumok eseményeinek sorrendjét.
  • A tárgymezővel érheti el a módosított kulcsértéket.

Következő lépések

Az Event Gridről és a Azure-alkalmazás konfigurációs események kipróbálásáról a következő témakörben olvashat bővebben: