Share via


Az Azure Event Grid-névtér fogalmai

Ez a cikk bemutatja a névtér témaköreihez kapcsolódó fő fogalmakat és funkciókat.

esemény

Az esemény a legkisebb mennyiségű információ, amely teljes mértékben leírja a rendszerben történteket. Gyakran különálló eseménynek nevezünk egy eseményt, mert az egy különálló, önazonos tényt jelent egy olyan rendszerről, amely egy végrehajtható megállapítást nyújt. Minden esemény közös információkkal rendelkezik, például source az eseményről, time az eseményről és egy egyedi azonosítóról. Minden esemény rendelkezik egy typeegyedi azonosítóval is, amely leírja, hogy milyen típusú bejelentéshez használják az eseményt.

Például az Azure Storage-ban létrehozott új fájlról szóló esemény a fájlról tartalmaz információkat, például a lastTimeModified értéket. Egy Event Hubs-esemény a rögzített fájl URL-címével rendelkezik. Előfordulhat, hogy a Rendelések mikroszolgáltatásban egy új megrendeléssel kapcsolatos esemény rendelkezik egy orderId attribútummal és egy URL-attribútummal a rendelés állapotának ábrázolásához. Néhány további példa az eseménytípusokra: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.

Íme egy mintaesemény:

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

Egy másik típusú esemény

A felhasználói közösség "eseményeknek" is nevezik azokat az üzeneteket, amelyek adatpontot hordoznak, például egyetlen eszköz olvasását vagy egy weblapra való kattintást. Az ilyen típusú eseményeket általában egy időablakban elemzik, hogy megállapításokat nyerjenek és műveletet hajtanak végre. Az Event Grid dokumentációjában ezt az eseményt adatpontként, streamelési adatként vagy egyszerűen telemetriaként hivatkozunk. Más típusú üzenetek mellett ez az eseménytípus az Event Grid Message Queuing Telemetry Transport (MQTT) közvetítő funkciójával is használható.

CloudEvents

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 BA Standard kiadás 64 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.

Kiadók

A közzétevő az az alkalmazás, amely eseményeket küld az Event Gridnek. Ez lehet ugyanaz az alkalmazás, ahol az események származnak, az esemény forrása. Névtértémakörök használata esetén saját alkalmazásból is közzétehet eseményeket.

Eseményforrások

Az esemény forrása az esemény. Minden eseményforrás egy vagy több eseménytípust támogat. Az alkalmazás például a rendszer által definiált egyéni események eseményforrása. Névtértémakörök használata esetén a támogatott eseményforrások saját alkalmazások.

Névterek

Az Event Grid-névtér a következő erőforrások felügyeleti tárolója:

Erőforrás Protokoll támogatott
Névtértémakörök HTTP
Témakör szóközei MQTT
Ügyfelek MQTT
Ügyfélcsoportok MQTT
Hitelesítésszolgáltatói tanúsítványok MQTT
Engedélykötések MQTT

Az Azure Event Grid-névtérrel csoportosíthatja a kapcsolódó erőforrásokat, és egyetlen egységként kezelheti őket az Azure-előfizetésben. Egyedi, teljes tartománynevet (FQDN) biztosít.

A névtér két végpontot tesz elérhetővé:

  • EGY HTTP-végpont, amely névtértémák használatával támogatja az általános üzenetkezelési követelményeket.
  • MQTT-végpont IoT-üzenetküldéshez vagy MQTT-t használó megoldásokhoz.

A névtér DNS-integrált hálózati végpontokat is biztosít. Emellett számos hozzáférés-vezérlési és hálózati integrációkezelési funkciót is kínál, például a nyilvános IP-címek bejövő forgalmának szűrését és a privát kapcsolatokat. Ez a névtérben tárolt erőforrásokhoz használt felügyelt identitások tárolója is.

Íme néhány további pont a névterekről:

  • A névtér egy nyomon követett erőforrás tagslocation és tulajdonságok, és a létrehozás után a következő webhelyen resources.azure.comtalálható: .
  • A névtér neve 3–50 karakter hosszú lehet. Tartalmazhat alfanumerikus és kötőjelet(-), szóközök nélkül.
  • A névnek régiónként egyedinek kell lennie.

Átviteli egységek

Az átviteli egységek (TU-k) határozzák meg a bejövő és kimenő eseménysebesség kapacitását a névterekben. További információ: Azure Event Grid-kvóták és korlátok.

Témakörök

A témakör az Event Gridben közzétett eseményeket tartalmazza. Általában egy témakörerőforrást használ a kapcsolódó események gyűjteményéhez. A névtéren belüli témaköröket gyakran névtértémaköröknek nevezzük.

Névtértémakörök

A névtértémakörök olyan témakörök, amelyek egy Event Grid-névtérben jönnek létre. Az alkalmazás egy HTTP-névtérvégponton teszi közzé az eseményeket, megadva egy névtértémakört, amelyben a közzétett események logikailag vannak tárolva. Az alkalmazás tervezésekor el kell döntenie, hogy hány témakört kell létrehoznia. Viszonylag nagy méretű megoldásokhoz hozzon létre egy névtér témakört a kapcsolódó események kategóriáihoz. Vegyük például azt az alkalmazást, amely a felhasználói fiókokat és egy másik alkalmazást kezel az ügyfélrendelésekkel kapcsolatban. Nem valószínű, hogy minden esemény-előfizető mindkét alkalmazásból szeretne eseményeket. A problémák elkülönítéséhez hozzon létre két névtértémát: egyet minden alkalmazáshoz. Az eseményfogyasztók a saját igényeiknek megfelelően iratkozzanak fel a témára. Kis megoldások esetén érdemes lehet az összes eseményt egyetlen témakörbe elküldeni.

A névtér témakörei támogatják a lekéréses kézbesítést és a leküldéses kézbesítést. Megtudhatja , mikor érdemes lekéréses vagy leküldéses kézbesítést használni annak eldöntéséhez, hogy a lekéréses kézbesítés a megfelelő megközelítés-e a követelményeknek megfelelően.

Esemény-előfizetések

Az esemény-előfizetés egy egyetlen témakörhöz társított konfigurációs erőforrás. Többek között egy esemény-előfizetés használatával állíthatja be az eseményválasztási feltételeket az előfizető számára elérhető eseménygyűjtemény meghatározásához a témakörben elérhető teljes eseménykészletből. Az eseményeket az előfizető igényei szerint szűrheti. Szűrheti például az eseményeket az eseménytípusuk alapján. Ha JSON-objektumot használ az adattulajdonság értékeként, az eseményadatok tulajdonságaira vonatkozó szűrési feltételeket is meghatározhat. Az erőforrástulajdonságokról további információt az Event Grid REST API vezérlősík-műveleteiben talál.

Egy témakört és a kapcsolódó esemény-előfizetéseket bemutató ábra.

Ha például névtértémakörökhöz szeretne előfizetéseket létrehozni, tekintse meg az üzenetek közzétételével és felhasználásával kapcsolatos témaköröket a parancssori felület használatával.

Feljegyzés

A névtér témakörében szereplő esemény-előfizetések egyszerűsített erőforrásmodellt használnak az egyéni, tartomány-, partner- és rendszertémákhoz (Event Grid Basic) használthoz képest. További információ: Esemény-előfizetések létrehozása, megtekintése és kezelése.

Lekéréses kézbesítés

A lekéréses kézbesítéssel az alkalmazás az Event Gridhez csatlakozva üzenetsorszerű szemantikával olvassa az üzeneteket. Amikor az alkalmazások az Event Gridhez csatlakoznak az események felhasználásához, ők irányítják az eseményhasználati arányt és annak időzítését. A fogyasztói alkalmazások privát végpontokat is használhatnak az Event Gridhez való csatlakozáskor, hogy privát IP-címtér használatával olvassák az eseményeket.

A lekéréses kézbesítés az alábbi műveleteket támogatja az üzenetek olvasásához és az üzenetállapot szabályozásához: fogadás, nyugtázás, kiadás, elutasítás és megújítási zárolás. További információkért tekintse meg a lekéréses kézbesítés áttekintését.

Adatalakzat események fogadása lekéréses kézbesítéssel

Amikor lekéréses kézbesítéssel kézbesít eseményeket, az Event Grid egy objektumtömböt tartalmaz, amely magában foglalja az eseményt és a brokerProperties objektumokat. Az eseménytulajdonság értéke a strukturált con sátormód-ben kézbesített CloudEvent. A brokerProperties objektum tartalmazza a kézbesített CloudEventhez társított zárolási jogkivonatot. A következő json-objektum egy fogadási művelet mintaválasza, amely két eseményt ad vissza:

{
    "value": [
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
                "deliveryCount": 2
            },
            "event": {
                "specversion": "1.0",
                "id": "A234-1234-1235",
                "source": "/mycontext",
                "time": "2018-04-05T17:31:00Z",
                "type": "com.example.someeventtype",
                "data": "some data"
            }
        },
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
                "deliveryCount": 1
            },
            "event": {
                "specversion": "1.0",
                "id": "B688-1234-1235",
                "source": "/mycontext",
                "type": "com.example.someeventtype",
                "time": "2018-04-05T17:31:00Z",
                "data": {
                    "somekey" : "value",
                    "someOtherKey" : 9
                }
            }
        }
    ]
}

Leküldéses kézbesítés

A leküldéses kézbesítéssel az Event Grid eseményeket küld egy leküldéses (kézbesítési) esemény-előfizetésben konfigurált célhelyre. Robusztus újrapróbálkozást biztosít arra az esetre, ha a cél nem tud eseményeket fogadni.

Fontos

Az Event Grid-névterek leküldéses kézbesítése jelenleg az Azure Event Hubsot támogatja célként. A jövőben az Event Grid-névterek több célhelyet is támogatnak, beleértve az Event Grid Basic által támogatott összes célhelyet is.

Event Hubs eseménykézbesítés

Az Event Grid az Event Hubs SDK használatával küld eseményeket az Event Hubsnak az AMQP használatával. Az események bájttömbként lesznek elküldve a CloudEventet tartalmazó tömb minden elemével.

Leküldéses és lekéréses kézbesítés

Az Event Grid http használatával támogatja a leküldéses és lekéréses eseménykézbesítést. A leküldéses kézbesítéssel meghatározhat egy célhelyet egy esemény-előfizetésben, egy webhookban vagy egy Azure-szolgáltatásban, amelyre az Event Grid eseményeket küld. A lekéréses kézbesítéssel az előfizető alkalmazások az Event Gridhez csatlakoznak az események felhasználásához. A lekéréses kézbesítés az Event Grid-névtér témaköreiben támogatott.

Fontos

Az Event Hubs a névtértémakörökre vonatkozó előfizetések célhelyeként támogatott. A következő kiadásokban az Event Grid-névterek támogatják az Event Grid Basicben jelenleg elérhető összes célhelyet, valamint további célhelyeket is.

Magas szintű diagram a leküldéses kézbesítésről és a lekéréses kézbesítésről az érintett erőforrások típusával.

Mikor érdemes leküldéses kézbesítést és lekéréses kézbesítést használni?

Az alábbi általános irányelvek segítenek eldönteni, hogy mikor érdemes lekéréses vagy leküldéses kézbesítést használni.

Lekéréses kézbesítés

  • Az események fogadásának időpontjával kapcsolatos teljes körű ellenőrzésre van szüksége. Előfordulhat például, hogy az alkalmazás nem áll naprakészen, nem elég stabil, vagy bizonyos időpontokban dolgoz fel adatokat.
  • Teljes körűen szabályoznia kell az eseményhasználatot. A fogyasztói alkalmazásban például egy downstream szolgáltatás vagy réteg olyan problémával rendelkezik, amely megakadályozza az események feldolgozását. Ebben az esetben a lekéréses kézbesítési API lehetővé teszi a fogyasztói alkalmazás számára, hogy kiadjon egy már olvasható eseményt a közvetítőnek, hogy később kézbesíthető legyen.
  • Privát hivatkozásokat szeretne használni az események fogadásakor, ami csak a lekéréses kézbesítéssel lehetséges, nem pedig a leküldéses kézbesítéssel.
  • Nem tehet közzé végpontot, és nem használhat leküldéses kézbesítést, de az események felhasználásához csatlakozhat az Event Gridhez.

Leküldéses kézbesítés

  • El szeretné kerülni az állandó lekérdezést annak megállapításához, hogy rendszerállapot-változás történt-e. Az Event Grid használatával inkább eseményeket küldhet Önnek az állapotváltozások idején.
  • Van egy olyan alkalmazása, amely nem tud kimenő hívásokat kezdeményezni. Előfordulhat például, hogy a szervezet aggódik az adatok kiszivárgása miatt. Az alkalmazás azonban nyilvános végponton keresztül fogadhatja az eseményeket.

Következő lépések