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 kurzu se naučíte, jak pomocí tématu oborových názvů směrovat data z MQTT klientů do služby Azure Event Hubs. Tady jsou základní kroky:
Požadavky
- Pokud nemáte předplatné Azure, vytvořte si bezplatný účet Azure, než začnete.
- Pokud s Event Gridem teprve začínáte, přečtěte si před zahájením tohoto kurzu přehled služby Event Grid .
- Zaregistrujte poskytovatele prostředků Event Grid podle kroků v registraci poskytovatele prostředků Event Gridu.
- Ujistěte se, že je v bráně firewall otevřený port 8883. Ukázka v tomto kurzu používá protokol MQTT, který komunikuje přes port 8883. Tento port může být blokovaný v některých podnikových a vzdělávacích síťových prostředích.
Spuštění Cloud Shellu
Přihlaste se k webu Azure Portal.
Výběrem odkazu spusťte Cloud Shell.
Přepněte na Bash.
Vytvořte obor názvů a téma pro Event Grid
Pokud chcete vytvořit obor názvů Event Gridu a téma v oboru názvů, zkopírujte následující skript do editoru, nahraďte zástupné symboly skutečnými hodnotami a spusťte příkazy.
| Placeholder | Comments |
|---|---|
RESOURCEGROUPNAME |
Zadejte název skupiny prostředků, která se má vytvořit. |
EVENTGRIDNAMESPACENAME |
Zadejte název oboru názvů pro Event Grid. |
REGION |
Zadejte umístění, ve kterém chcete prostředky vytvořit. |
NAMESPACETOPICNAME |
Uveďte název tématu pro obor názvů. |
rgName="RESOURCEGROUPNAME"
nsName="EVENTGRIDNAMESPACENAME"
location="REGION"
nsTopicName="NAMESPACETOPICNAME"
az group create -n $rgName -l $location
az eventgrid namespace create -g $rgName -n $nsName -l $location --topic-spaces-configuration "{state:Enabled}" --identity "{type:SystemAssigned}"
az eventgrid namespace topic create -g $rgName --name $nsTopicName --namespace-name $nsName
Vytvoření oboru názvů služby Event Hubs a centra událostí
Chcete-li vytvořit obor názvů Event Hubs a událostní centrum v daném oboru názvů, nahraďte zástupné symboly skutečnými hodnotami a spusťte následující příkazy. Toto centrum událostí se využívá jako obslužná rutina události v odběru událostí, který vytvoříte v tomto návodu.
| Placeholder | Comments |
|---|---|
EVENTHUBSNAMESPACENAME |
Zadejte název prostoru názvů služby Event Hubs, který má být vytvořen. |
EVENTHUBNAME |
Zadejte název instance služby Event Hubs (centrum událostí), který se má vytvořit v oboru názvů služby Event Hubs. |
ehubNsName="EVENTHUBSNAMESPACENAME`"
ehubName="EVENTHUBNAME"
az eventhubs namespace create --resource-group $rgName --name $ehubNsName
az eventhubs eventhub create --resource-group $rgName --namespace-name $ehubNsName --name $ehubName
Udělit oboru názvů Event Grid přístup k odesílání událostí do centra událostí.
Spuštěním následujícího příkazu přidejte instanční objekt oboru názvů Event Gridu do role Odesílatele dat služby Azure Event Hubs v oboru názvů služby Event Hubs. Umožňuje oboru názvů Event Grid a jeho prostředkům odesílat události do centra událostí v oboru názvů Event Hubs.
egNamespaceServicePrincipalObjectID=$(az ad sp list --display-name $nsName --query [].id -o tsv)
namespaceresourceid=$(az eventhubs namespace show -n $ehubNsName -g $rgName --query "{I:id}" -o tsv)
az role assignment create --assignee $egNamespaceServicePrincipalObjectID --role "Azure Event Hubs Data Sender" --scope $namespaceresourceid
Vytvoření odběru událostí se službou Event Hubs jako koncovým bodem
Pokud chcete vytvořit odběr událostí pro téma oboru názvů, které jste vytvořili dříve, nahraďte zástupné symboly skutečnými hodnotami a spusťte následující příkazy. Toto předplatné je nakonfigurováno tak, aby používalo Event Hub jako zpracovatele událostí.
| Placeholder | Comments |
|---|---|
EVENTSUBSCRIPTIONNAME |
Zadejte název odběru událostí pro téma oboru názvů. |
eventSubscriptionName="EVENTSUBSCRIPTIONNAME"
eventhubresourceid=$(az eventhubs eventhub show -n $ehubName --namespace-name $ehubNsName -g $rgName --query "{I:id}" -o tsv)
az resource create --api-version 2023-06-01-preview --resource-group $rgName --namespace Microsoft.EventGrid --resource-type eventsubscriptions --name $eventSubscriptionName --parent namespaces/$nsName/topics/$nsTopicName --location $location --properties "{\"deliveryConfiguration\":{\"deliveryMode\":\"Push\",\"push\":{\"maxDeliveryCount\":10,\"deliveryWithResourceIdentity\":{\"identity\":{\"type\":\"SystemAssigned\"},\"destination\":{\"endpointType\":\"EventHub\",\"properties\":{\"resourceId\":\"$eventhubresourceid\"}}}}}}"
Konfigurace směrování v oboru názvů Služby Event Grid
Spuštěním následujících příkazů povolte směrování v oboru názvů pro směrování zpráv nebo událostí do tématu oboru názvů, které jste vytvořili dříve. Odběr událostí v tomto jmenném prostoru předává tyto události do Event Hubu, který je nakonfigurovaný jako obslužná rutina událostí.
routeTopicResourceId=$(az eventgrid namespace topic show -g $rgName --namespace-name $nsName -n $nsTopicName --query "{I:id}" -o tsv)
az eventgrid namespace create -g $rgName -n $nsName --topic-spaces-configuration "{state:Enabled,'routeTopicResourceId':$routeTopicResourceId}"
Vyhrazený klient, prostor témat a svázání oprávnění
Teď vytvořte klienta, který odešle několik zpráv pro testování. V tomto kroku vytvoříte klienta, prostor tématu s tématem a vazby pro publikování a odběr.
Podrobné pokyny najdete v tématu Rychlý start: Publikování a přihlášení k odběru zpráv MQTT v oboru názvů Služby Event Grid pomocí Azure CLI.
| Placeholder | Comments |
|---|---|
CLIENTNAME |
Zadejte název klienta, který odesílá několik testovacích zpráv. |
CERTIFICATETHUMBPRINT |
Otisk certifikátu klienta Pokyny k vytvoření certifikátu a extrakci kryptografického otisku najdete v předchozím rychlém startu. K odesílání testovacích zpráv použijte stejný kryptografický otisk v nástroji MQTTX. |
TOPICSPACENAME |
Zadejte název prostoru tématu, který se má vytvořit. |
PUBLSHERBINDINGNAME |
Zadejte název vazby vydavatele. |
SUBSCRIBERBINDINGNAME |
Zadejte název vazby odběratele. |
clientName="CLIENTNAME"
clientAuthName="client1-authnID"
clientThumbprint="CERTIFICATETHUMBPRINT"
topicSpaceName="TOPICSPACENAME"
publisherBindingName="PUBLSHERBINDINGNAME"
subscriberBindingName="SUBSCRIBERBINDINGNAME"
az eventgrid namespace client create -g $rgName --namespace-name $nsName -n $clientName --authentication-name $clientAuthName --client-certificate-authentication "{validationScheme:ThumbprintMatch,allowed-thumbprints:[$clientThumbprint]}"
az eventgrid namespace topic-space create -g $rgName --namespace-name $nsName -n $topicSpaceName --topic-templates ['contosotopics/topic1']
az eventgrid namespace permission-binding create -g $rgName --namespace-name $nsName -n $publisherBindingName --client-group-name '$all' --permission publisher --topic-space-name $topicSpaceName
az eventgrid namespace permission-binding create -g $rgName --namespace-name $nsName -n $subscriberBindingName --client-group-name '$all' --permission subscriber --topic-space-name $topicSpaceName
Odesílání zpráv pomocí MQTTX
K odeslání několika testovacích zpráv použijte MQTTX. Podrobné pokyny najdete v rychlém startu: Publikování a přihlášení k odběru tématu MQTT.
Ověřte, že Event Hub přijal tyto zprávy na stránce Přehled vašeho prostoru názvů Event Hubs.
Zobrazení směrovaných zpráv MQTT ve službě Event Hubs pomocí dotazu Stream Analytics
Na webu Azure Portal přejděte do instance služby Event Hubs (centrum událostí) ve vašem odběru událostí. Zpracování dat z centra událostí pomocí Stream Analytics Další informace najdete v tématu Zpracování dat ze služby Azure Event Hubs pomocí Stream Analytics – Azure Event Hubs | Microsoft Learn. V dotazu můžete zobrazit zprávy MQTT.
Další kroky
Ukázky kódu naleznete v tomto úložišti GitHub.