Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a gyorsindítási útmutatóban az események közzétételéhez, fogadásához és nyugtázásához lekéréses kézbesítést hajt végre a bash shell parancsok használatával. Azure Event Grid-erőforrások létrehozása Azure CLI-parancsokkal. Ez a cikk alkalmas a lekéréses kézbesítés funkció gyors tesztelésére.
Az adatsík SDK-jait használó mintakódokat az alábbi forrásokban tekinti meg:
- .NET: Üzenetek küldése és fogadása egy Azure Event Grid-névtér témakörből (.NET)
- Java: Események közzététele névtértémakörökben a Java használatával
- Java: Események fogadása lekéréses módban Java nyelvvel
A lekéréses kézbesítési modellről további információt az Azure Event Grid névtérfogalmai és a HTTP használatával történő lekéréses kézbesítésről szóló cikkeket talál.
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha a CLI referencia parancsokat helyben szeretnéd futtatni, telepítsd az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, fontolja meg az Azure CLI-t egy Docker-konténerben futtatni. További információkért lásd: Az Azure CLI használata Docker-konténerben.
Ha egy helyileg telepített verziót használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. Az azonosítási folyamat befejezéséhez kövesse a terminálján megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor megjelenik a felszólítás, az első használatkor telepítse az Azure CLI bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtasd a az version parancsot, hogy megtudd a telepített verziót és függő könyvtárakat. A legújabb verzióra való frissítéshez futtassa a az upgrade parancsot.
- Ez a cikk az Azure CLI 2.0.70-es vagy újabb verzióját igényli. Ha az Azure Cloud Shellt használja, a legújabb verzió már telepítve van.
Erőforráscsoport létrehozása
Hozzon létre egy Azure-erőforráscsoportot az az group create paranccsal. Ez az erőforráscsoport az ebben a cikkben létrehozott összes erőforrást tartalmazza.
A Cloud Shell parancsok futtatásának általános lépései a következők:
- Válassza a Cloud Shell megnyitása lehetőséget egy Azure Cloud Shell-ablak megtekintéséhez a jobb oldali panelen.
- Másolja ki a parancsot, és illessze be az Azure Cloud Shell ablakába.
- A parancs futtatásához nyomja le az ENTER billentyűt.
Deklaráljon egy változót egy Azure-erőforráscsoport nevének tárolásához. Adjon meg egy nevet az erőforráscsoport számára a
<your-resource-group-name>érték cseréjével.resource_group="<your-resource-group-name>"Hozzon létre egy erőforráscsoportot. A helyet bármely Azure-beli helyre módosíthatja.
az group create --name $resource_group --location eastus
Az Event Grid-erőforrás-szolgáltató engedélyezése
Ha most először használja az Event Gridet az Azure-előfizetésében, előfordulhat, hogy regisztrálnia kell az Event Grid-erőforrás-szolgáltatót. A szolgáltató regisztrálásához futtassa az alábbi parancsot:
az provider register --namespace Microsoft.EventGridEltarthat egy ideig, amíg a regisztráció befejeződik. Az állapot ellenőrzéséhez futtassa a következő parancsot:
az provider show --namespace Microsoft.EventGrid --query "registrationState"Ha a
registrationStateértékeRegistered, akkor készen áll a folytatásra.
Névtér létrehozása
Az Event Grid-névtér egy felhasználó által definiált végpontot biztosít, amelyre az eseményeket közzéteheti. Az alábbi példa létrehoz egy névteret az erőforráscsoportban a Bash használatával az Azure Cloud Shellben. A névtér nevének egyedinek kell lennie, mert egy DNS-bejegyzés része. A névtérnévnek meg kell felelnie a következő szabályoknak:
- 3–50 karakter hosszúságúnak kell lennie.
- Regionálisan egyedinek kell lennie.
- Csak a megengedett karakterek: a-z, A-Z, 0-9 és -
- Nem szabad olyan fenntartott kulcsszavas előtagokkal kezdeni, mint a
Microsoft,SystemvagyEventGrid.
Deklaráljon egy változót az Event Grid-névtér nevének tárolásához. Adja meg a névtér nevét úgy, hogy a
<your-namespace-name>értéket az Ön értékére cseréli.namespace="<your-namespace-name>"Hozzon létre egy névteret. Előfordulhat, hogy módosítani szeretné azt a helyet, ahol üzembe helyezi.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
Névtértéma létrehozása
Hozzon létre egy témakört, amely a névtérvégponton közzétett összes eseményt tartalmazza.
Deklaráljon egy változót a névtértéma nevének tárolásához. Adja meg a névtér témakörének nevét, az
<your-topic-name>értékre cserélésével.topic="<your-topic-name>"A névtér témakörének létrehozása:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
Esemény-előfizetés létrehozása
Hozzon létre egy esemény-előfizetést, amely várólistára állítja a kézbesítési módot, amely támogatja a lekéréses kézbesítést. Az összes konfigurációs lehetőségről további információt az Azure Event Grid REST API-ban talál.
Deklaráljon egy változót, amely egy esemény-előfizetés nevét tárolja a névtér témakörében. Az esemény-előfizetés nevét adja meg, cserélje le a
<your-event-subscription-name>értéket a kívánt névre.event_subscription="<your-event-subscription-name>"Hozzon létre egy esemény-előfizetést a névtér témaköréhez:
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}}"
Események küldése a témakörbe
Küldjön egy mintaeseményt a névtér témakörébe az ebben a szakaszban ismertetett lépések végrehajtásával.
Névtér hozzáférési kulcsok listázása
Kérje le a létrehozott névtérhez társított hozzáférési kulcsokat. Az események közzétételekor az egyikre szüksége van a hitelesítéshez. A kulcsok listázásához kérje le a teljes névtérerőforrás-azonosítót. Futtassa a következő parancsot:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)Kérje le az első kulcsot a névtérből:
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
Esemény közzététele
Kérje le a névtér kiszolgáló nevét. A névtér HTTP-végpontjának megírására használja, amelybe az eseményeket küldi. A következő műveletek először az API-verzióval
2023-06-01-previewvoltak elérhetők.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-previewHozzon létre egy CloudEvents-kompatibilis mintaeseményt :
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"}} 'Az
dataelem az esemény teljes hasznos terhelése. Bármilyen, megfelelően formált JSON megadható ebben a mezőben. Az eseménybe bekerülő tulajdonságokat környezetattribútumoknak is nevezzük. További információ: CloudEvents.A CURL parancsot használva küldje el az eseményt a témára. A CURL egy olyan segédprogram, amely HTTP-kéréseket küld.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Az esemény fogadása
Eseményeket fogad az Event Gridtől egy esemény-előfizetésre hivatkozó végpont használatával.
A végpont létrehozása a következő parancs futtatásával:
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-previewKüldjön egy kérelmet az esemény felhasználására:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
Esemény nyugtázása
Miután megkapta az eseményt, átadja az eseményt az alkalmazásnak feldolgozás céljából. Az esemény sikeres feldolgozása után már nincs szüksége arra, hogy az esemény szerepeljen az esemény-előfizetésben. Ha azt szeretné, hogy az Event Grid törölje az eseményt, a fogadási művelet válaszában kapott zárolási kulccsal nyugtázza azt.
A korábbi szakaszban kapott egy választ, amely egy
brokerPropertiesobjektumot tartalmaz egylockTokentulajdonsággal. Másolja ki a zárolási jogkivonat értékét, és állítsa be egy környezeti változóra:lockToken="<paste-the-lock-token-here>"Építse fel a nyugtázási művelet hasznos adatait, amely meghatározza a nyugtázni kívánt esemény zárolási jogkivonatát.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} 'Folytassuk a karakterlánc összeállítását a nyugtázási művelet URI-jával.
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-previewVégül küldjön egy kérést a kapott esemény nyugtázására:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uriHa a nyugtázási műveletet a zárolási jogkivonat lejárata előtt hajtja végre (az esemény-előfizetés létrehozásakor beállított 300 másodperc), a következő példához hasonló válasznak kell megjelennie:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
Következő lépés
A lekéréses kézbesítési modellről további információt a LEkéréses kézbesítés HTTP-vel című témakörben talál.