Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten curl utför du pull-leverans med bash shell-kommandot för att publicera, ta emot och bekräfta händelser. Använd Azure CLI-kommandon för att skapa Azure Event Grid-resurser. Den här artikeln är lämplig för ett snabbtest av pull-leveransfunktionen.
Exempelkod som använder SDK:er för dataplanet finns i följande resurser:
- .NET: Skicka och ta emot meddelanden från ett Azure Event Grid-namnområdesämne (.NET)
- Java: Publicera händelser i namnområdesavsnitt med Java
- Java: Ta emot händelser med pull-leverans med Java
Mer information om pull-leveransmodellen finns i Begrepp för Azure Event Grid-namnrymd och Pull-leverans med HTTP-artiklar .
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.70 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en resursgrupp
Skapa en Azure-resursgrupp med kommandot az group create. Använd den här resursgruppen om du vill innehålla alla resurser som du skapar i den här artikeln.
De allmänna stegen för att använda Cloud Shell för att köra kommandon är:
- Välj Öppna Cloud Shell för att se ett Azure Cloud Shell-fönster i den högra rutan.
- Kopiera kommandot och klistra in det i Azure Cloud Shell-fönstret.
- Kör kommandot genom att trycka på RETUR.
Deklarera en variabel som innehåller namnet på en Azure-resursgrupp. Ange ett namn för resursgruppen genom att
<your-resource-group-name>ersätta med ditt värde.resource_group="<your-resource-group-name>"Skapa en resursgrupp. Du kan ändra platsen till valfri Azure-plats.
az group create --name $resource_group --location eastus
Aktivera resursprovidern för Event Grid
Om det är första gången du använder Event Grid i din Azure-prenumeration kan du behöva registrera Event Grid-resursprovidern. Registrera providern genom att köra följande kommando:
az provider register --namespace Microsoft.EventGridDet kan ta en stund innan registreringen är klar. Kontrollera statusen genom att köra följande kommando:
az provider show --namespace Microsoft.EventGrid --query "registrationState"När
registrationStateärRegisteredkan du fortsätta.
Skapa ett namnområde
Ett Event Grid-namnområde innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. I följande exempel skapas ett namnområde i resursgruppen med bash i Azure Cloud Shell. Namnområdesnamnet måste vara unikt eftersom det ingår i en DNS-post (Domain Name System). Ett namnområdesnamn bör uppfylla följande regler:
- Den ska vara mellan 3 och 50 tecken.
- Den bör vara regionalt unik.
- Endast tillåtna tecken är: a-z, A-Z, 0-9 och -
- Det bör inte börja med reserverade nyckelordsprefix som
Microsoft,SystemellerEventGrid.
Deklarera en variabel för att lagra namnet på Event Grid-namnområdet. Ange ett namn för namnområdet genom att
<your-namespace-name>ersätta med ditt värde.namespace="<your-namespace-name>"Skapa ett namnområde. Du kanske vill ändra platsen där du distribuerar den.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
Skapa ett namnområdesavsnitt
Skapa ett ämne som innehåller alla händelser som publicerats till namnområdesslutpunkten.
Deklarera en variabel som innehåller namnet på ditt namnområdesämne. Ange ett namn för namnområdesavsnittet genom att
<your-topic-name>ersätta med ditt värde.topic="<your-topic-name>"Skapa ditt namnområdesämne:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
Skapa en händelseprenumeration
Skapa en händelseprenumeration som ställer in leveransläget till kö, vilket stöder passiv leverans. Mer information om alla konfigurationsalternativ finns i REST API för Azure Event Grid.
Deklarera en variabel för att lagra namnet på en händelseprenumeration i ditt namnområdesavsnitt. Ange ett namn för händelseprenumerationen genom att
<your-event-subscription-name>ersätta med ditt värde.event_subscription="<your-event-subscription-name>"Skapa en händelseprenumeration till namnområdesavsnittet:
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}}"
Skicka händelser till ditt ämne
Skicka en exempelhändelse till namnområdesavsnittet genom att följa stegen i det här avsnittet.
Visa namnområdesåtkomstnycklar
Hämta de åtkomstnycklar som är associerade med det namnområde som du skapade. Du behöver en av dem för att autentisera när du publicerar händelser. Om du vill visa en lista över dina nycklar hämtar du det fullständiga namnområdesresurs-ID:t. Kör följande kommando:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)Hämta den första nyckeln från namnområdet:
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
Publicera en händelse
Hämta värdnamnet för namnområdet. Du använder den för att skriva namnområdets HTTP-slutpunkt till vilken händelser skickas. Följande åtgärder var först tillgängliga med API-versionen
2023-06-01-preview.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-previewSkapa en CloudEvents-exempelkompatibel händelse:
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"}} 'Elementet
dataär datainnehållet för ditt event. All välformulerad JSON kan stå i det här fältet. Egenskaper som kan gå in i en händelse kallas även kontextattribut. Mer information finns i CloudEvents.Använd CURL för att skicka händelsen till ämnet. CURL är ett verktyg som skickar HTTP-förfrågningar.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Motta händelsen
Du får händelser från Event Grid med hjälp av en slutpunkt som refererar till en händelseprenumeration.
Skriv slutpunkten genom att köra följande kommando:
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-previewSkicka en begäran om att använda händelsen:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
Bekräfta en händelse
När du har fått en händelse skickar du händelsen till ditt program för bearbetning. När du har bearbetat händelsen behöver du inte längre den händelsen i din händelseprenumeration. Om du vill instruera Event Grid att ta bort händelsen bekräftar du den med hjälp av dess låstoken som du fick som svar på mottagningsoperationen.
I föregående avsnitt fick du ett svar som innehåller ett
brokerPropertiesobjekt med enlockTokenegenskap. Kopiera värdet för låstoken och ange det på en miljövariabel:lockToken="<paste-the-lock-token-here>"Skapa nyttolasten för bekräftelseåtgärden, som anger låstoken för händelsen som du vill bekräfta.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} 'Fortsätt med att skapa strängen med bekräftelseåtgärdens URI:
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-previewSkicka slutligen en begäran om att bekräfta den mottagna händelsen:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uriOm bekräftelseåtgärden körs innan låstoken upphör att gälla (300 sekunder som angetts när vi skapade händelseprenumerationen) bör du se ett svar som i följande exempel:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
Nästa steg
Mer information om pull-leveransmodellen finns i Pull delivery with HTTP.