Doručování změn s využitím PROTOKOLU HTTP

Tento článek vychází z článku Co je Azure Event Grid? a v článku o konceptech Event Gridu, který poskytuje základní informace před tím, než začnete používat doručení služby Event Grid přes PROTOKOL HTTP. Popisuje základní koncepty, modely prostředků a podporované režimy doručování zpráv. Na konci tohoto dokumentu najdete užitečné odkazy na články, které vás provedou používáním Event Gridu a článků, které nabízejí podrobné koncepční informace.

Poznámka:

Tento dokument vám pomůže začít s možnostmi služby Event Grid, které používají protokol HTTP. Tento článek je vhodný pro uživatele, kteří potřebují integrovat aplikace v cloudu. Pokud potřebujete komunikovat data zařízení IoT, přečtěte si téma Přehled funkce Zprostředkovatele MQTT ve službě Azure Event Grid.

CloudEvents

Témata oboru názvů Event Gridu přijímají události, které splňují standardní specifikaci CloudEvents 1.0 (CloudEvents 1.0) v souladu s otevřenou specifikací CLOUDEvents 1.0 pomocí vazby protokolu HTTP ve formátu JSON.

Další informace najdete v konceptech CloudEvents.

CloudEvents con režim stanu s

Specifikace CloudEvents definuje tři kon režim stanu můžete použít: binární, strukturované a dávkové.

Důležité

S libovolným kódem con režim stanu můžete vyměňovat text (JSON, text/*atd.) nebo binární data událostí s kódováním. Binární kon režim stanu se nepoužívá výhradně pro odesílání binárních dat.

Con režim stanu nejsou o kódování, které používáte, binární nebo text, ale o tom, jak jsou data událostí a jeho metadata popsána a vyměňována. Strukturovaná kon režim stanu používá jednu strukturu, například objekt JSON, kde jsou kontextové atributy i data událostí společně v datové části HTTP. Binární con režim stanu odděluje kontextové atributy, které jsou mapovány na hlavičky HTTP, a data událostí, což je datová část HTTP kódovaná podle hodnoty typu média v Content-Type.

Další informace najdete v CloudEvents con režim stanu s.

Zprávy a události

CloudEvent obvykle přenáší data událostí oznamující výskyt v systému, tj. změnu stavu systému. Při použití CloudEvents ale můžete vyjádřit jakýkoli druh dat. Například můžete chtít použít formát výměny CloudEvents k odeslání zprávy příkazu k vyžádání akce podřízené aplikaci. Dalším příkladem je směrování zpráv z zprostředkovatele MQTT služby Event Grid do tématu. V tomto scénáři směrujete zprávu MQTT zabalenou do obálky CloudEvents.

Doručení vyžádané replikace

Při doručování změn se vaše aplikace připojí ke službě Event Grid ke čtení CloudEvents pomocí sémantiky podobné frontě.

Doručování změn nabízí tyto výhody využití událostí:

  • Využití událostí vlastním tempem, škálováním nebo rychlostí příchozího přenosu dat, kterou vaše aplikace podporuje.

  • Využití událostí najednou podle vlastního výběru Například vzhledem k obchodním požadavkům se zprávy zpracovávají v noci.

  • Využití událostí přes privátní propojení, aby vaše data používala privátní prostor IP adres.

Poznámka:

  • Obory názvů poskytují jednodušší model prostředků s jedním druhem tématu. Event Grid v současné době podporuje publikování vlastních událostí aplikace prostřednictvím témat oboru názvů. Události ze služeb Azure nebo partnerských systémů SaaS nemůžete využívat pomocí témat oboru názvů. V oboru názvů také nemůžete vytvářet systémová témata, témata domén nebo témata partnerů.
  • Témata oboru názvů podporují formát JSON CloudEvents.

Odběry událostí fronty

Při příjmu událostí nebo použití operací, které spravují stav události, aplikace určuje koncový bod HTTP oboru názvů, název tématu a název odběru událostí fronty . Odběr událostí fronty má svůj deliveryMode nastavený na "queue". Odběry událostí fronty se používají ke zpracování událostí pomocí rozhraní API pro doručování změn. Další informace o tom, jak tyto prostředky vytvořit, najdete v tématu vytváření oborů názvů, témat a odběrů událostí.

Odběr událostí použijete k definování kritérií filtrování událostí a v takovém případě efektivně definujete sadu událostí, které jsou dostupné pro spotřebu prostřednictvím odběru událostí. Jedna nebo více aplikací odběratelů (příjemců) se může připojit ke stejnému koncovému bodu oboru názvů a použít stejné téma a odběr událostí.

Diagram vysoké úrovně vydavatele a příjemce, který používá odběr událostí Příjemce používá doručování změn.

Operace doručování změn

Při práci s doručováním změn používá vaše aplikace následující operace.

  • Operace příjmu se používá ke čtení jedné nebo více událostí pomocí jednoho požadavku do Event Gridu. Ve výchozím nastavení zprostředkovatel čeká až 60 sekund, než se události zpřístupní. Události se například zpřístupní k doručení, když se poprvé publikují. Úspěšná žádost o přijetí vrátí nula nebo více událostí. Pokud jsou události k dispozici, vrátí co nejvíce dostupných událostí až do požadovaného počtu událostí. Event Grid také vrací token zámku pro každé čtení události.
  • Zámek tokenu je druh popisovače, který identifikuje událost, kterou můžete použít k řízení jeho stavu.
  • Jakmile aplikace příjemce přijme událost a zpracuje ji, potvrdí tuto událost. Tato operace dává službě Event Grid pokyn, aby událost odstranila, aby nebyla znovu převedena na jiného klienta. Aplikace příjemce potvrdí jeden nebo více tokenů s jedním požadavkem zadáním jejich zámkových tokenů před vypršením jejich platnosti.

V některých jiných případech může vaše spotřebitelská aplikace chtít události vydat nebo odmítnout.

  • Vaše aplikace příjemce uvolní přijatou událost, aby signalizovala Event Grid, že není připravená zpracovat tuto událost a zpřístupnit ji pro opětovné nasazení. Provede to voláním operace uvolnění s tokeny zámků identifikující události, které se mají vrátit zpět do Event Gridu. Vaše aplikace může řídit, jestli se má událost uvolnit okamžitě nebo jestli se má použít zpoždění před tím, než bude událost k dispozici pro opětovné nasazení.

  • Pokud existuje podmínka, která může být trvalá, můžete odmítnout událost, která brání vaší aplikaci příjemce, aby událost zpracovávala. Poškozenou zprávu je například možné odmítnout, protože ji nelze úspěšně analyzovat. Odmítnuté události jsou nedoručené, pokud je k dispozici cíl nedoručených dopisů. Jinak se vyhodí.

Rozsah, na kterém se spouští operace doručování změn

Když vyvoláte operaci přijetí, potvrzení, vydání, odmítnutí nebo obnovení zámku , tyto akce se provádějí v kontextu odběru událostí. Pokud například potvrdíte událost, tato událost už není dostupná prostřednictvím odběru události použitého při volání akce potvrzení . Jiné odběry událostí můžou mít stále k dispozici stejnou událost. Je to proto, že odběr události získá kopii publikovaných událostí. Tyto kopie událostí se vzájemně liší mezi předplatnými událostí. Každá událost má svůj vlastní stav nezávisle na ostatních událostech.

Obrazec dat při příjmu událostí pomocí doručování změn

Při doručování událostí pomocí doručování změn zahrnuje Event Grid pole objektů, které zase zahrnují objekty event a brokerProperties . Hodnota vlastnosti události je CloudEvent doručená ve strukturovaném con režim stanu. Objekt brokerProperties obsahuje token zámku přidružený k doručené službě CloudEvent. Následující objekt JSON je ukázková odpověď z operace příjmu, která vrací dvě události:

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

Doručování nabízených oznámení a vyžádání změn

Event Grid podporuje doručování událostí nabízených oznámení a vyžádání pomocí protokolu HTTP. S doručováním nabízených oznámení definujete cíl v odběru událostí, webhooku nebo službě Azure, do které Event Grid odesílá události. S doručováním změn se aplikace odběratelů připojují ke službě Event Grid za účelem využívání událostí. Doručování změn je podporováno pro témata v oboru názvů Event Gridu.

Důležité

Služba Event Hubs je podporovaná jako cíl pro odběry témat oboru názvů. V nadcházejících verzích budou obory názvů služby Event Grid podporovat všechny cíle, které jsou aktuálně dostupné v Event Gridu Basic, spolu s dalšími cíli.

Diagram vysoké úrovně znázorňující doručování nabízených oznámení a doručování změn s typem zahrnutých prostředků

Kdy použít nabízenou doručení vs. doručení změn

Níže jsou uvedené obecné pokyny, které vám pomůžou rozhodnout, kdy použít doručení vyžádané nebo nabízené replikace.

Doručení vyžádané replikace

  • K příjmu událostí potřebujete úplné řízení. Vaše aplikace například nemusí být neustále vzhůru, není dostatečně stabilní nebo zpracováváte data v určitých časech.
  • Potřebujete úplnou kontrolu nad spotřebou událostí. Například podřízená služba nebo vrstva ve vaší aplikaci příjemce má problém, který brání zpracování událostí. V takovém případě rozhraní API pro doručování změn umožňuje aplikaci příjemce uvolnit událost čtení zpět do zprostředkovatele, aby ji bylo možné doručit později.
  • Chcete použít privátní propojení při příjmu událostí, což je možné pouze s doručováním změn, nikoli doručováním nabízených oznámení.
  • Nemáte možnost zveřejnit koncový bod a používat nabízené doručování, ale ke službě Event Grid se můžete připojit, abyste mohli využívat události.

Doručování nabízených oznámení

  • Chcete se vyhnout konstantnímu dotazování, abyste zjistili, že došlo ke změně stavu systému. Event Grid používáte k odesílání událostí v době, kdy dojde ke změnám stavu.
  • Máte aplikaci, která nemůže provádět odchozí volání. Vaše organizace se například může zabývat exfiltrací dat. Vaše aplikace ale může přijímat události prostřednictvím veřejného koncového bodu.

Další kroky

V následujících článcích najdete informace o tom, jak používat Event Grid nebo jak poskytnout další informace o konceptech.