Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu provedete doručování změn pomocí curl
příkazu prostředí Bash k publikování, přijímání a potvrzení událostí. K vytvoření prostředků Azure Event Gridu použijte příkazy Azure CLI. Tento článek je vhodný pro rychlé testování funkce doručování stahováním.
Ukázkový kód, který používá sady SDK roviny dat, najdete v těchto zdrojích informací:
- .NET: Odesílání a přijímání zpráv z tématu oboru názvů Azure Event Grid (.NET)
- Java: Publikování událostí do témat v jmenném prostoru použitím Javy
- Java: Příjem událostí pomocí pull doručování v Javě
Další informace o modelu vytahování najdete v článcích Koncepty oborů názvů služby Azure Event Grid a Vytahování s využitím HTTP.
Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
Požadavky
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud chcete spouštět referenční příkazy CLI lokálně, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Pro více informací, viz Jak spustit Azure CLI v Docker kontejneru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Chcete-li dokončit proces ověřování, postupujte podle kroků zobrazených ve vašem terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Když budete vyzváni, nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spusťte az version, abyste zjistili verzi a závislé knihovny, které jsou nainstalovány. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
- Tento článek vyžaduje verzi 2.0.70 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků Azure pomocí příkazu az group create. Pomocí této skupiny prostředků můžete obsahovat všechny prostředky, které vytvoříte v tomto článku.
Obecný postup použití Cloud Shellu ke spouštění příkazů:
- Výběrem možnosti Otevřít Cloud Shell zobrazíte okno Azure Cloud Shellu v pravém podokně.
- Zkopírujte příkaz a vložte ho do okna Azure Cloud Shellu.
- Stisknutím klávesy ENTER spusťte příkaz.
Deklarujte proměnnou, která bude obsahovat název skupiny prostředků Azure. Zadejte název skupiny prostředků a vložte vaši hodnotu místo
<your-resource-group-name>
.resource_group="<your-resource-group-name>"
Vytvořte skupinu prostředků. Umístění můžete změnit na libovolné umístění Azure.
az group create --name $resource_group --location eastus
Povolte poskytovatele prostředků Event Grid.
Pokud ve svém předplatném Azure používáte Event Grid poprvé, možná budete muset zaregistrovat poskytovatele prostředků Event Gridu. Spuštěním následujícího příkazu zaregistrujte poskytovatele:
az provider register --namespace Microsoft.EventGrid
Dokončení registrace může chvíli trvat. Pokud chcete zkontrolovat stav, spusťte následující příkaz:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Jakmile
registrationState
jeRegistered
, můžete pokračovat.
Vytvořit obor názvů
Obor názvů Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události. Následující příklad vytvoří ve vaší skupině prostředků obor názvů pomocí bashe ve službě Azure Cloud Shell. Název jmenného prostoru musí být jedinečný, protože je součástí záznamu v systému názvů domén (DNS). Název oboru názvů by měl splňovat následující pravidla:
- Měl by mít délku 3 až 50 znaků.
- Měla by být jedinečná na regionální úrovni.
- Povolené znaky jsou: a-z, A-Z, 0-9 a -
- Neměl by začínat předponami rezervovaných klíčových slov, jako je
Microsoft
,System
neboEventGrid
.
Deklarujte proměnnou, která bude obsahovat název vašeho oboru názvů Event Grid. Zadejte název oboru názvů nahrazením
<your-namespace-name>
svou hodnotou.namespace="<your-namespace-name>"
Vytvořte obor názvů. Možná budete chtít změnit umístění, kam ho nasadíte.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
Vytvoření tématu oboru názvů
Vytvořte téma obsahující všechny události publikované do koncového bodu oboru názvů.
Deklarujte proměnnou, která bude obsahovat název tématu pro jmenný prostor. Zadejte název pro téma oboru názvů tím, že nahradíte
<your-topic-name>
svou hodnotou.topic="<your-topic-name>"
Vytvořte téma prostoru názvů:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
Vytvoření odběru událostí
Vytvořte odběr události a nastavte režim doručování na frontu, která podporuje pull doručování. Pro více informací o všech možnostech konfigurace se podívejte na Azure Event Grid REST API.
Deklarujte proměnnou, která bude obsahovat název předplatného události pro téma v rámci oboru názvů. Zadejte název pro odběr události tím, že
<your-event-subscription-name>
nahradíte vaší hodnotou.event_subscription="<your-event-subscription-name>"
Vytvořte odběr události pro téma prostoru názvů:
az eventgrid namespace topic event-subscription create --resource-group $resource_group --topic-name $topic --name $event_subscription --namespace-name $namespace --delivery-configuration "{deliveryMode:Queue,queue:{receiveLockDurationInSeconds:300,maxDeliveryCount:4,eventTimeToLive:P1D}}"
Odeslat události do tématu
Podle kroků v této části odešlete ukázkovou událost do tématu oboru názvů.
Výpis přístupových klíčů jmenného prostoru
Získejte přístupové klíče přidružené k oboru názvů, který jste vytvořili. K ověření při publikování událostí potřebujete jeden z nich. Pokud chcete zobrazit seznam klíčů, získejte úplné ID prostředku oboru názvů. Spusťte následující příkaz:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)
Získejte první klíč z prostoru názvů.
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
Publikování události
Načtěte hostitelské jméno oboru názvů. Použijete ho pro sestavení oboru názvů koncového bodu HTTP, na který se odesílají události. Následující operace byly nejprve k dispozici s verzí
2023-06-01-preview
rozhraní API .publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Vytvořte ukázkovou událost kompatibilní s CloudEvents :
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
Element
data
je datový obsah vaší události. V tomto poli může být libovolný JSON ve správném formátu. Vlastnosti, které mohou přejít do události, se také označují jako kontextové atributy. Další informace najdete v tématu CloudEvents.Pomocí nástroje CURL odešlete událost do tématu. CURL je nástroj, který odesílá požadavky HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Přijmout událost
Události obdržíte z Event Gridu pomocí koncového bodu, který odkazuje na odběr událostí.
Vytvořte koncový bod spuštěním následujícího příkazu:
receive_operation_uri="https://"$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:receive?api-version=2023-06-01-preview
Odešlete žádost o využití události:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
Potvrzení události
Jakmile obdržíte událost, předáte ji aplikaci ke zpracování. Po úspěšném zpracování události už tuto událost nepotřebujete, aby byla ve vašem odběru událostí. Pokud chcete službě Event Grid dát pokyn k odstranění události, potvrďte ji pomocí jeho tokenu zámku, který jste získali v odpovědi operace příjmu.
V předchozí části jste obdrželi odpověď, která obsahuje
brokerProperties
objekt slockToken
vlastností. Zkopírujte hodnotu tokenu zámku a nastavte ji v proměnné prostředí:lockToken="<paste-the-lock-token-here>"
Sestavte datovou část operace potvrzení, která určuje token zámku pro událost, kterou chcete potvrdit.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} '
Pokračujte sestavením řetězce s identifikátorem URI potvrzovací operace:
acknowledge_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:acknowledge?api-version=2023-06-01-preview
Nakonec odešlete žádost o potvrzení přijaté události:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uri
Pokud se operace potvrzení provede před vypršením platnosti tokenu uzamčení (300 sekund podle nastavení při vytváření odběru událostí), měli byste vidět odpověď jako v následujícím příkladu:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
Další krok
Další informace o modelu doručování změn najdete v tématu Doručování změn pomocí protokolu HTTP.