Megosztás a következőn keresztül:


Azure Event Grid-névterek – a CloudEvents-séma támogatása

Az Event Grid névtértémakörök olyan eseményeket fogadnak el, amelyek megfelelnek a Cloud Native Computing Foundation (CNCF) nyílt standard CloudEvents 1.0 specifikációjának jSON formátumú HTTP protokollkötéssel. A CloudEvent egyfajta üzenet, amely tartalmazza a kommunikációt, más néven eseményadatokat és metaadatokat. Az eseményvezérelt architektúrák eseményadatai általában a rendszerállapot változását bejelentő információkat hordoznak. A CloudEvents metaadatai olyan attribútumokból állnak, amelyek környezeti információkat nyújtanak az üzenetről, például a forrásrendszerről, annak típusáról stb. A CloudEvents specifikációinak megfelelő összes érvényes üzenetnek tartalmaznia kell a következő szükséges környezeti attribútumokat:

A CloudEvents specifikációja opcionális és bővítménykörnyezeti attribútumokat is meghatároz, amelyeket az Event Grid használatakor is felvehet.

Az Event Grid használatakor a CloudEvents az előnyben részesített eseményformátum a jól dokumentált használati esetek (események átvitelének módjai , eseményformátumok stb.), a bővíthetőség és a jobb együttműködés miatt. A CloudEvents az események közzétételének és felhasználásának általános eseményformátumával javítja az együttműködést. Lehetővé teszi az események egységes eszközkezelését és szabványos útválasztási módjait.

CloudEvents-kolostorok sátormód

A CloudEvents specifikációja három con sátormód határoz meg: bináris, strukturált és kötegelt.

Fontos

Bármilyen con sátormód szöveget (JSON, text/*stb.) vagy binárisan kódolt eseményadatokat cserélhet. A bináris con sátormód nem kizárólag bináris adatok küldéséhez használható.

A con sátormód nem a használt kódolásról, bináris vagy szövegről szólnak, hanem az eseményadatok és a metaadatok leírásáról és cseréjéről. A strukturált con sátormód egyetlen struktúrát használ, például egy JSON-objektumot, ahol a környezeti attribútumok és az eseményadatok együtt szerepelnek a HTTP hasznos adataiban. A bináris con sátormód elválasztja a HTTP-fejlécekhez leképezett környezeti attribútumokat és az eseményadatokat, amelyek a HTTP hasznos adatai a megadott médiatípusnak megfelelően vannak kódolvaContent-Type.

CloudEvents-támogatás

Ez a táblázat a CloudEvents specifikációjának aktuális támogatását mutatja be:

CloudEvents con sátormód Támogatott?
Strukturált JSON Igen
Strukturált JSON kötegelve Igen, események közzétételéhez
Bináris Igen, események közzétételéhez

Egy esemény maximális mérete 1 MB. A 64 KB-nál nagyobb eseményeket 64 KB-os növekményekben számítjuk fel.

Strukturált con sátormód

A CloudEvents strukturált con sátormód üzenetei a környezeti attribútumokat és az eseményadatokat együtt tartalmazzák egy HTTP hasznos adatban.

Fontos

Az Event Grid jelenleg a CloudEvents JSON formátumot támogatja HTTP-vel.

Íme egy példa a CloudEventsre strukturált módban, JSON formátumban. Mindkét metaadatot (az összes attribútumot, amely nem "adat") és az üzenet-/eseményadatokat (az "adat" objektumot) jSON használatával írják le. Példánk az összes szükséges környezeti attribútumot, valamint néhány választható attribútumot (subject, timeés ) és datacontenttypebővítményattribútumot (comexampleextension1, comexampleothervalue).

{
    "specversion" : "1.0",
    "type" : "com.yourcompany.order.created",
    "source" : "/orders/account/123",
    "subject" : "O-28964",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "application/json",
    "data" : {
       "orderId" : "O-28964",
       "URL" : "https://com.yourcompany/orders/O-28964"
    }
}

A JSON formátum strukturált tartalommal használható olyan eseményadatok küldésére, amelyek nem JSON-értékek. Ehhez hajtsa végre a következő lépéseket:

  1. Adjon meg egy datacontenttype attribútumot azzal a médiatípussal, amelyben az adatok kódolása történik.
  2. Ha a médiatípus olyan szöveges formátumban van kódolva, mint a text/plain, text/csvvagy application/xml, akkor egy JSON-sztringet tartalmazó attribútumot kell használnia data , amely értékként adja meg a kommunikációt.
  3. Ha a médiatípus bináris kódolást jelöl, olyan attribútumot kell használniadata_base64, amelynek értéke egy BASE64 kódolású bináris értéket tartalmazó JSON-sztring.

Ez a CloudEvent például protobuf-üzenetek cseréjéhez kódolt application/protobuf eseményadatokat hordoz.

{
    "specversion" : "1.0",
    "type" : "com.yourcompany.order.created",
    "source" : "/orders/account/123",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "datacontenttype" : "application/protobuf",
    "data_base64" : "VGhpcyBpcyBub3QgZW5jb2RlZCBpbiBwcm90b2J1ZmYgYnV0IGZvciBpbGx1c3RyYXRpb24gcHVycG9zZXMsIGltYWdpbmUgdGhhdCBpdCBpcyA6KQ=="
}

Az attribútumok vagy attribútumok használatáról további információt az datadata_base64 Adatok kezelése című témakörben talál.

A con sátormód-ról további információt a CloudEvents HTTP strukturált con sátormód specifikációiban talál.

Kötegelt con sátormód

Az Event Grid jelenleg támogatja a JSON kötegelt con sátormód a CloudEvents Event Gridben való közzétételekor. Ez a con sátormód egy CloudEventstel kitöltött JSON-tömböt használ strukturált kúpban sátormód. Az alkalmazás például két eseményt tehet közzé az alábbihoz hasonló tömb használatával. Hasonlóképpen, ha az Event Grid adatsíkjának SDK-ját használja, a rendszer ezt a hasznos adatot is elküldi:

[
    {
        "specversion": "1.0",
        "id": "E921-1234-1235",
        "source": "/mycontext",
        "type": "com.example.someeventtype",
        "time": "2018-04-05T17:31:00Z",
        "data": "some data"
    },
    {
        "specversion": "1.0",
        "id": "F555-1234-1235",
        "source": "/mycontext",
        "type": "com.example.someeventtype",
        "time": "2018-04-05T17:31:00Z",
        "data": {
            "somekey" : "value",
            "someOtherKey" : 9
        }
    }
]

További információ: CloudEvents Batched Content Mode specs.

Kötegelés

Az alkalmazásnak több eseményt kell egy tömbbe egyesítenie, hogy nagyobb hatékonyságot és nagyobb átviteli sebességet érjen el egyetlen közzétételi kéréssel. A kötegek legfeljebb 1 MB méretűek lehetnek, és az események maximális mérete 1 MB.

Bináris con sátormód

A CloudEvent bináris con sátormód környezetattribútumait HTTP-fejlécekként írják le. A HTTP-fejlécek neve az előtaggal ce-ellátott környezeti attribútum neve. Az Content-Type élőfej azt a médiatípust tükrözi, amelyben az eseményadatok kódolva lesznek.

Fontos

A bináris con sátormód használatakor a ce-datacontenttype HTTP-fejléc NEM lehet jelen.

Fontos

Ha a bináris con sátormód használatakor saját attribútumokat (pl. bővítményattribútumokat) szeretne használni, győződjön meg arról, hogy a nevük kisbetűkből ('a'-tól 'z'-ig) vagy számjegyekből ('0'-tól '9'-ig) áll az ASCII karakterből, és hogy nem hosszabbak 20 karakternél. Ez azt jelzi, hogy a CloudEvents környezeti attribútumainak elnevezésére vonatkozó elnevezési konvenció szigorúbb, mint az érvényes HTTP-fejlécneveké. Nem minden érvényes HTTP-fejlécnév érvényes bővítményattribútumnév.

A HTTP hasznos adat az esemény adatai, amely a médiatípusnak megfelelően van kódolva a következőben Content-Type: .

A CloudEvent tartalom bináris módban való közzétételére használt HTTP-kérések az alábbi példához hasonlóan nézhetnek ki:

POST / HTTP/1.1
HOST mynamespace.eastus-1.eventgrid.azure.net/topics/mytopic
ce-specversion: 1.0
ce-type: com.example.someevent
ce-source: /mycontext
ce-id: A234-1234-1234
ce-time: 2018-04-05T17:31:00Z
ce-comexampleextension1: value
ce-comexampleothervalue: 5
content-type: application/protobuf

Binary data according to protobuf encoding format. No context attributes are included.

Mikor érdemes használni a CloudEvents bináris vagy strukturált con sátormód

A strukturált con sátormód akkor is használható, ha egyszerű megközelítést szeretne használni a CloudEvents ugrások és protokollok közötti továbbításához. Mivel a CloudEvent strukturált con sátormód tartalmazza az üzenetet a metaadataival együtt, az ügyfelek egyszerűen felhasználhatják egészként, és továbbíthatja azt más rendszereknek.

Használhat bináris con sátormód ha tudja, hogy az alsóbb rétegbeli alkalmazások csak az üzenetet igénylik további információk nélkül (azaz a környezeti attribútumok). Míg a strukturált con sátormód továbbra is lekérheti az eseményadatokat (üzenetet) a CloudEventből, egyszerűbb, ha egy fogyasztói alkalmazás csak a HTTP hasznos adatban tartalmazza. Más alkalmazások például használhatnak más protokollokat, és előfordulhat, hogy csak az alapvető üzenet érdekli őket, nem pedig a metaadatait. Valójában a metaadatok csak az első ugráskor lehetnek relevánsak. Ebben az esetben a metaadatokon kívül kicserélni kívánt adatok megkönnyítik a kezelést és a továbbítást.