Share via


Lekéréses kézbesítés HTTP-vel

Ez a cikk a Mi az Azure Event Grid? című cikkre és az Event Grid alapfogalmaira épül, hogy alapvető információkat nyújtson, mielőtt elkezdené használni az Event Grid lekéréses kézbesítését HTTP-n keresztül. A támogatott alapvető fogalmakat, erőforrásmodelleket és üzenetkézbesítési módokat ismerteti. A dokumentum végén olyan cikkekre mutató hasznos hivatkozásokat talál, amelyek bemutatja az Event Grid használatát, valamint azokat a cikkeket, amelyek részletes fogalmi információkat tartalmaznak.

Feljegyzés

Ez a dokumentum segítséget nyújt a HTTP protokollt használó Event Grid-képességek használatának megkezdésében. Ez a cikk azoknak a felhasználóknak szól, akiknek alkalmazásokat kell integrálniuk a felhőbe. Ha IoT-eszközadatok közlésére van szüksége, tekintse meg az Azure Event Grid MQTT Broker funkciójának áttekintését.

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.

További információért tekintse meg a CloudEvents alapelveit .

CloudEvents-kolostorok sátormód

A CloudEvents specifikációja három con sátormód definiál, amelyet használhat: bináris, strukturált és kötegelt.

Fontos

Bármilyen con sátormód szöveget (JSON, text/*stb.) vagy bináris kódolású 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 médiatípus értéke alapján vannak kódolva a fájlbanContent-Type.

További információért tekintse meg a CloudEvents con sátormód s webhelyet.

Üzenetek és események

A CloudEvent általában olyan eseményadatokat hordoz, amelyek egy rendszerbeli eseményt, vagyis rendszerállapot-változást jelentik be. A CloudEvents használatakor azonban bármilyen típusú adatot továbbíthat. Előfordulhat például, hogy a CloudEvents exchange formátumával szeretne parancsüzenetet küldeni, amely egy műveletet kér egy alsóbb rétegbeli alkalmazáshoz. Egy másik példa az, amikor az Event Grid MQTT-közvetítőjének üzeneteit egy témakörbe irányítja. Ebben a forgatókönyvben egy CloudEvents-borítékba csomagolt MQTT-üzenetet irányít.

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

A lekéréses kézbesítéssel az alkalmazás csatlakozik az Event Gridhez a CloudEvents üzenetsorszerű szemantikával való olvasásához.

A lekéréses kézbesítés az alábbi eseményfogyasztási előnyöket kínálja:

  • Az eseményeket saját tempójában, nagy léptékben vagy az alkalmazás által támogatott bemeneti sebességgel használhatja fel.

  • Eseményeket saját maga által választott időpontban használjon fel. Az üzleti követelményeknek megfelelően például az üzenetek feldolgozása éjszaka történik.

  • Privát kapcsolaton keresztül használjon eseményeket, hogy az adatok privát IP-területet használjanak.

Feljegyzés

  • A névterek egyszerűbb erőforrásmodellt biztosítanak, amely egyetlen témakörtípust tartalmaz. Az Event Grid jelenleg támogatja a saját alkalmazásesemények névtértémákon keresztüli közzétételét. Névtértémák használatával nem használhatja fel az Azure-szolgáltatásokból vagy partner SaaS-rendszerekből származó eseményeket. Rendszertémakörök, tartománytémakörök és partnertémakörök sem hozhatók létre névtérben.
  • A névtértémakörök támogatják a CloudEvents JSON formátumát.

Üzenetsor-esemény-előfizetések

Események fogadásakor vagy eseményállapot-kezelő műveletek használatakor az alkalmazás megadja a névtér HTTP-végpontját, a témakör nevét és egy üzenetsor-esemény-előfizetés nevét. Az üzenetsor-esemény-előfizetés kézbesítésiMode beállítása "queue" (üzenetsor) értékre van állítva. A várólistás esemény-előfizetések a lekéréses kézbesítési API használatával használják az eseményeket. További információ az erőforrások létrehozásáról: névterek, témakörök és esemény-előfizetések létrehozása.

Egy esemény-előfizetés használatával határozza meg az események szűrési feltételeit, és ennek során hatékonyan határozza meg az esemény-előfizetésen keresztül felhasználható események készletét. Egy vagy több előfizetői (fogyasztói) alkalmazás ugyanahhoz a névtérvégponthoz csatlakozhat, és ugyanazt a témakör- és esemény-előfizetést használhatja.

Esemény-előfizetést használó közzétevő és fogyasztó magas szintű diagramja. A fogyasztó lekéréses kézbesítést használ.

Lekéréses kézbesítési műveletek

Az alkalmazás a következő műveleteket használja a lekéréses kézbesítés használatakor.

  • A fogadási művelet egy vagy több esemény beolvasására szolgál az Event Gridnek küldött egyetlen kérés használatával. Alapértelmezés szerint a közvetítő legfeljebb 60 másodpercet vár, amíg az események elérhetővé válnak. Az események például az első közzétételükkor lesznek elérhetők a kézbesítéshez. A sikeres fogadási kérelem nulla vagy több eseményt ad vissza. Ha az események elérhetők, a lehető legtöbb elérhető eseményt adja vissza a kért eseményszámig. Az Event Grid minden beolvasott eseményhez egy zárolási jogkivonatot is ad vissza.
  • A zárolási jogkivonat egyfajta leíró, amely azonosít egy eseményt, amellyel szabályozhatja az állapotát.
  • Miután egy fogyasztói alkalmazás megkapja az eseményt, és feldolgozza azt, tudomásul veszi ezt az eseményt. Ez a művelet arra utasítja az Event Gridet, hogy törölje az eseményt, hogy ne legyen egy másik ügyfélnek újra kézbesítve. A fogyasztói alkalmazás egy vagy több jogkivonatot egyetlen kéréssel nyugtáz, és megadja a zárolási jogkivonatokat a lejárat előtt.

Más esetekben előfordulhat, hogy a fogyasztói alkalmazás szeretne eseményeket kiadni vagy elutasítani.

  • A fogyasztói alkalmazás kiad egy fogadott eseményt, amely jelzi az Event Gridnek, hogy nem áll készen az esemény feldolgozására, és hogy elérhetővé tegye az újraeladáshoz. Ezt úgy teszi, hogy meghívja a kiadási műveletet az Event Gridnek visszaadandó eseményeket azonosító zárolási jogkivonatokkal. Az alkalmazás szabályozhatja, hogy az eseményt azonnal fel kell-e szabadítani, vagy ha késleltetést kell alkalmazni, mielőtt az esemény újraelérhetővé válik.

  • Dönthet úgy, hogy elutasít egy eseményt, ha van egy olyan feltétel ( esetleg állandó ), amely megakadályozza, hogy a fogyasztói alkalmazás feldolgozhassa az eseményt. A hibásan formázott üzenetek például elutasíthatók, mert nem elemezhetők sikeresen. Az elutasított események holtbetűsek, ha elérhető a holtbetűs célhely. Ellenkező esetben el lesznek dobva.

Hatókör, amelyen a lekéréses kézbesítési műveletek futnak

Fogadási, nyugtázási, kiadási, elutasítási vagy megújítási művelet meghívásakor ezek a műveletek az esemény-előfizetés kontextusában lesznek végrehajtva. Ha például egy eseményt nyugtáz, az esemény már nem érhető el az nyugtázási művelet hívásához használt esemény-előfizetésen keresztül. Más esemény-előfizetések továbbra is "ugyanazzal" az eseménysel rendelkezhetnek. Ennek az az oka, hogy egy esemény-előfizetés megkapja a közzétett események másolatát. Ezek az eseménypéldányok gyakorlatilag különböznek egymástól az esemény-előfizetések között. Minden eseménynek saját állapota van, független a többi eseményétől.

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 é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

Az alábbi cikkekből megtudhatja, hogyan használhatja az Event Gridet, vagy további információkat kaphat a fogalmakról.