Azure Event Grid-eseményséma

Ez a cikk az Event Grid-sémát ismerteti, amely egy védett, nem kiterjeszthető, de teljesen működőképes eseményformátum. Az Event Grid továbbra is támogatja ezt az eseményformátumot, és továbbra is támogatja azt. A CloudEvents azonban az ajánlott eseményformátum. Ha Event Grid-formátumot használó alkalmazásokat használ, hasznos lehet a [CloudEvents] szakaszban található információk, amelyek az Event Grid által támogatott Event Grid és CloudEvents formátum közötti átalakításokat ismertetik.

Ez a cikk részletesen ismerteti az Event Grid formátum tulajdonságait és sémáját. Az események négy kötelező sztringtulajdonságból állnak. A tulajdonságok minden közzétevő összes eseményére jellemzőek. Az adatobjektum minden közzétevőre jellemző tulajdonságokkal rendelkezik. Rendszertémakörök esetén ezek a tulajdonságok az erőforrás-szolgáltatóra vonatkoznak, például az Azure Storage-ra vagy az Azure Event Hubsra.

Az eseményforrások egy tömbben küldenek eseményeket az Azure Event Gridnek, amely több eseményobjektummal is rendelkezhet. Események Event Grid-témakörbe való közzétételekor a tömb teljes mérete legfeljebb 1 MB lehet. A tömb minden eseménye legfeljebb 1 MB lehet. Ha egy esemény vagy tömb nagyobb a méretkorlátnál, a 413 Payload Too Large választ kapja. A műveletek díja azonban 64 KB-os növekményben történik. A 64 KB-nál nagyobb események tehát üzemeltetési díjakat vonnak maguk után, mintha több eseményről lenne szó. Például egy 130 KB-os esemény olyan műveleteket vonna maga után, mintha három különálló esemény lenne.

Az Event Grid egyetlen eseményt tartalmazó tömb előfizetőinek küldi el az eseményeket. Ez a viselkedés a jövőben változhat.

Az Event Grid-esemény JSON-sémáját és az Egyes Azure-közzétevők adat-hasznos adatait az Eseményséma-tárolóban találja.

Eseményséma

Az alábbi példa az összes esemény közzétevője által használt tulajdonságokat mutatja be:

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Az Azure Blob Storage-eseményhez közzétett séma például a következő:

[
  {
    "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/xstoretestaccount",
    "subject": "/blobServices/default/containers/oc2d2817345i200097container/blobs/oc2d2817345i20002296blob",
    "eventType": "Microsoft.Storage.BlobCreated",
    "eventTime": "2017-06-26T18:41:00.9584103Z",
    "id": "831e1650-001e-001b-66ab-eeb76e069631",
    "data": {
      "api": "PutBlockList",
      "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
      "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
      "eTag": "0x8D4BCC2E4835CD0",
      "contentType": "application/octet-stream",
      "contentLength": 524288,
      "blobType": "BlockBlob",
      "url": "https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob",
      "sequencer": "00000000000004420000000000028963",
      "storageDiagnostics": {
        "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
      }
    },
    "dataVersion": "",
    "metadataVersion": "1"
  }
]

Esemény tulajdonságai

Minden esemény ugyanazokat a legfelső szintű adatokat tartalmazza:

Tulajdonság Típus Kötelező Leírás
topic húr Nem, de ha szerepel benne, pontosan meg kell egyeznie az Event Grid-témakör Azure Resource Manager-azonosítójával. Ha nem tartalmazza, az Event Grid az eseményre bélyegez. 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 sztring Igen Az esemény tárgyra mutató, a közzétevő által megadott elérési út.
eventType sztring Igen Az eseményforráshoz felvett eseménytípusok egyike.
eventTime sztring Igen Az esemény létrehozásának időpontja a szolgáltató UTC-ideje alapján.
id sztring Igen Az esemény egyedi azonosítója.
data object Igen Az erőforrás-szolgáltatóra vonatkozó eseményadatok.
dataVersion húr Nem, de üres értékkel lesz megjelölve. Az adatobjektum sémaverziója. A sémaverziót a közzétevő határozza meg.
metadataVersion húr Nem kötelező, de ha tartalmazza, pontosan meg kell egyeznie az Event Grid-sémával metadataVersion (jelenleg csak 1). Ha nem tartalmazza, az Event Grid az eseményre bélyegez. Az esemény metaadatok sémaverziója. A legfelső szintű tulajdonságokra az Event Grid határozza meg a sémát. Az értéket az Event Grid adja meg.

Az adatobjektum tulajdonságainak megismeréséhez tekintse meg az esemény forrását:

Egyéni témakörök esetén az esemény közzétevője határozza meg az adatobjektumot. A legfelső szintű adatoknak ugyanazokat a mezőket kell megadniuk, mint a standard erőforrás által definiált eseményeknek.

Amikor eseményeket tesz közzé egyéni témakörökben, hozzon létre témákat az eseményekhez, amelyek megkönnyítik az előfizetők számára, hogy megtudják, érdekli-e őket az esemény. Az előfizetők a tárgy alapján szűrik és irányítják az eseményeket. Fontolja meg az esemény helyszínének elérési útját, hogy az előfizetők az elérési út szegmensei alapján szűrhessenek. Az elérési út lehetővé teszi az előfizetők számára az események szűk vagy széles körű szűrését. Ha például három szegmensútvonalat ad meg, mint /A/B/C a tárgyban, az előfizetők az első szegmens /A alapján szűrhetnek az események széles körének lekéréséhez. Ezek az előfizetők eseményeket kapnak olyan témákkal, mint /A/B/C vagy /A/D/E. Más előfizetők szűrhetnek /A/B az események szűkebb halmazának lekéréséhez.

Előfordulhat, hogy a témának részletesebb információra van szüksége a történtekről. A Tárfiókok közzétevője például akkor adja meg a tárgyat/blobServices/default/containers/<container-name>/blobs/<file>, amikor egy fájlt hozzáad egy tárolóhoz. Az előfizetők az elérési út /blobServices/default/containers/testcontainer alapján szűrhetnek az adott tároló összes eseményének lekéréséhez, a tárfiók többi tárolójához azonban nem. Az előfizetők az utótag .txt alapján is szűrhetnek vagy irányíthatnak, hogy csak szövegfájlokkal dolgozzanak.

CloudEvents

A CloudEvents az ajánlott eseményformátum. Az Azure Event Grid továbbra is a Legalább CloudEvents JSON-formátumhoz kapcsolódó funkciókba fektet be. Tekintettel arra, hogy egyes eseményforrások, például az Azure-szolgáltatások az Event Grid formátumot használják, az alábbi táblázat segít megérteni a CloudEvents és az Event Grid formátumok beviteli sémaként való használata esetén támogatott átalakítást a témakörökben, és kimeneti sémaként az esemény-előfizetésekben. Az Event Grid kimeneti sémája nem használható a CloudEvents bemeneti sémaként való használatakor, mivel a CloudEvents támogatja az Event Grid-séma által nem támogatott bővítményattribútumokat .

Bemeneti séma Kimeneti séma
CloudEvents formátum CloudEvents formátum
Event Grid formátum CloudEvents formátum
Event Grid formátum Event Grid formátum

Következő lépések