Sdílet prostřednictvím


Publikování do témat oboru názvů a využívání událostí ve službě Azure Event Grid

Tento článek obsahuje rychlý úvod k doručování změn pomocí curl příkazu prostředí Bash k publikování, příjmu a potvrzení událostí. Prostředky Event Gridu se vytvářejí pomocí příkazů rozhraní příkazového řádku. Tento článek je vhodný pro rychlý test funkce doručování změn. Vzorový kód využívající sady SDK roviny dat najdete v ukázkách .NET nebo Java. Pro Javu poskytujeme vzorový kód ve dvou článcích: publikování událostí a přijímání rychlých startů událostí. Další informace o modelu doručování změn najdete v článcích s přehledem konceptů a doručení změn.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Předpoklady

  • 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. Tuto skupinu prostředků použijete k zahrnutí všech prostředků vytvořených 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.
  1. Deklarujte proměnnou, která bude obsahovat název skupiny prostředků Azure. Zadejte název skupiny prostředků nahrazením <your-resource-group-name> hodnoty, která se vám líbí.

    resource_group="<your-resource-group-name>"
    
  2. Vytvořte skupinu prostředků. Změňte umístění podle potřeby.

    az group create --name $resource_group --location eastus
    

Povolení poskytovatele prostředků Event Gridu

  1. Pokud jste službu Event Grid ve svém předplatném Azure ještě nepoužívali, 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
    
  2. 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 je Registered, můžete pokračovat.

Vytvoření oboru 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 oboru názvů musí být jedinečný, protože je součástí položky DNS (Domain Name System). 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 nebo EventGrid.
  1. Deklarujte proměnnou, která bude obsahovat název vašeho oboru názvů Event Gridu. Zadejte název oboru názvů nahrazením <your-namespace-name> hodnoty, která se vám líbí.

    namespace="<your-namespace-name>"
    
  2. Vytvořte obor názvů. Možná budete chtít změnit umístění, ve kterém je nasazená.

    az eventgrid namespace create -g $resource_group -n $namespace -l eastus
    

Vytvoření tématu oboru názvů

Vytvořte téma, které slouží k uložení všech událostí publikovaných do koncového bodu oboru názvů.

  1. Deklarujte proměnnou, která bude obsahovat název tématu oboru názvů. Zadejte název tématu oboru názvů nahrazením <your-topic-name> hodnoty, která se vám líbí.

    topic="<your-topic-name>"
    
  2. Vytvořte téma oboru názvů:

    az eventgrid namespace topic create -g $resource_group -n $topic --namespace-name $namespace 
    

Vytvoření odběru událostí

Vytvořte odběr událostí, který nastavuje režim doručení do fronty, což podporuje doručování změn. Další informace o všech možnostech konfigurace najdete v nejnovější verzi rozhraní REST API řídicí roviny služby Event Grid.

  1. Deklarujte proměnnou, která bude obsahovat název odběru událostí tématu oboru názvů. Zadejte název odběru události nahrazením <your-event-subscription-name> hodnoty, která se vám líbí.

    event_subscription="<your-event-subscription-name>"
    
  2. Vytvořte odběr události pro téma oboru názvů:

    az eventgrid namespace topic event-subscription create -g $resource_group --topic-name $topic -n $event_subscription --namespace-name $namespace --delivery-configuration "{deliveryMode:Queue,queue:{receiveLockDurationInSeconds:300,maxDeliveryCount:4,eventTimeToLive:P1D}}"
    

Odeslání událostí do tématu

Teď odešlete ukázkovou událost do tématu oboru názvů pomocí kroků v této části.

Výpis přístupových klíčů oboru názvů

  1. Získejte přístupové klíče přidružené k oboru názvů, který jste vytvořili. Jednu z nich použijete k ověření při publikování událostí. Abyste mohli zobrazit seznam klíčů, potřebujete nejprve úplné ID prostředku oboru názvů. Získejte ho spuštěním následujícího příkazu:

    namespace_resource_id=$(az eventgrid namespace show -g $resource_group -n $namespace --query "id" --output tsv)
    
  2. Získejte první klíč z oboru názvů:

    key=$(az eventgrid namespace list-key -g $resource_group --namespace-name $namespace --query "key1" --output tsv)
    

Publikování události

  1. Načtěte název hostitele oboru názvů. Použijete ho k vytvoření koncového bodu HTTP oboru názvů, do kterého se odesílají události. Následující operace byly nejprve k dispozici s verzí 2023-06-01-previewrozhraní 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
    
  2. 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á část události. V tomto poli může být libovolný JSON ve správném formátu. Další informace ovlastnostech

  3. 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řijetí události

Události obdržíte z Event Gridu pomocí koncového bodu, který odkazuje na odběr událostí.

  1. Vytvořte tento koncový bod spuštěním následujícího příkazu:

    receive_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:receive?api-version=2023-06-01-preview
    
  2. 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.

  1. V předchozím kroku byste měli obdržet odpověď, která obsahuje brokerProperties objekt s lockToken vlastností. Zkopírujte hodnotu tokenu zámku a nastavte ji v proměnné prostředí:

    lockToken="<paste-the-lock-token-here>"
    
  2. Teď sestavte datovou část operace potvrzení, která určuje token zámku pro událost, kterou chcete potvrdit.

    acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} '
    
  3. Pokračujte vytvořením řetězce s identifikátorem URI operace potvrzení:

    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
    
  4. 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ší kroky

Další informace o modelu doručování změn najdete v tématu Přehled doručení změn.