Routes en eindpunten maken en verwijderen met behulp van de Azure CLI
In dit artikel leest u hoe u Azure IoT Hub-routes en -eindpunten beheert met behulp van de Azure CLI. Leer hoe u de Azure CLI gebruikt om routes en eindpunten te maken voor Azure Event Hubs, Azure Service Bus-wachtrijen en onderwerpen, Azure Storage en Cosmos DB.
Zie IoT Hub-berichtroutering gebruiken om apparaat-naar-cloud-berichten naar verschillende eindpunten te verzenden voor meer informatie over hoe routering werkt in IoT Hub. Zie zelfstudie: Apparaatgegevens verzenden naar Azure Storage met behulp van IoT Hub-berichtroutering om stapsgewijs een route in te stellen waarmee berichten naar de opslag worden verzonden en vervolgens op een gesimuleerd apparaat worden getest.
Vereisten
De procedures die in het artikel worden beschreven, gebruiken de volgende bronnen:
- De Azure CLI
- Een IoT-hub
- Een eindpuntservice in Azure
Azure-CLI
In dit artikel wordt de Azure CLI gebruikt om te werken met IoT Hub en andere Azure-services. U kunt kiezen hoe u toegang krijgt tot de Azure CLI:
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
IoT Hub
Een IoT-hub in uw Azure-abonnement hebben. Als u nog geen hub hebt, kunt u de stappen volgen in Een IoT-hub maken.
Eindpuntservice
U hebt ten minste één andere Azure-service nodig om te gebruiken als eindpunt voor de route. Het eindpunt ontvangt apparaatberichten en gebeurtenislogboeken.
Bepaal welke Azure-service u wilt gebruiken als eindpunt voor het ontvangen van gerouteerde apparaat- en gebeurtenisgegevens: een Event Hub, een servicewachtrij of onderwerp, een opslagaccount of een Cosmos DB-container. Voor de service die u wilt gebruiken, voert u de stappen uit om een eindpuntservice te maken.
Een Event Hubs-naamruimte en een Event Hub maken. Zie quickstart: Een Event Hub maken met behulp van de Azure CLI voor meer informatie.
Maak een autorisatieregel die wordt gebruikt om IoT Hub toestemming te geven om gegevens naar de Event Hub te verzenden.
Tip
De
name
waardeRootManageSharedAccessKey
van de parameter is de standaardnaam waarmee claims beheren, verzenden, luisteren (toegang) zijn toegestaan. Als u de claims wilt beperken, geeft u dename
parameter uw eigen unieke naam en neemt u de--rights
vlag op gevolgd door een van de claims. Bijvoorbeeld:--name my-name --rights Send
.az eventhubs eventhub authorization-rule create --resource-group my-resource-group --namespace-name my-routing-namespace --eventhub-name my-event-hubs --name RootManageSharedAccessKey
Zie Toegang tot Azure Event Hubs autoriseren voor meer informatie.
Een eindpunt maken
Alle IoT Hub-routes verwijzen naar een eindpunt, dat het gerouteerde apparaat en de gebeurtenisgegevens ontvangt. Meer dan één route kan verwijzen naar hetzelfde eindpunt. Momenteel ondersteunt IoT Hub eindpunten voor Event Hubs, Service Bus-wachtrijen of onderwerpen, Opslag en Cosmos DB. Een exemplaar van de service die u voor uw eindpunt gebruikt, moet aanwezig zijn in uw Azure-abonnement voordat u het eindpunt maakt.
Notitie
In dit artikel wordt gebruikgemaakt van de opdrachtgroep az iot hub message-endpoint , die is geïntroduceerd in versie 0.19.0 van de azure-iot-extensie voor de Azure CLI. In eerdere versies van de azure-iot-extensie is gebruikgemaakt van de opdrachtgroep az iot hub routing-endpoint . Deze is vergelijkbaar en wordt nog steeds ondersteund, maar biedt geen ondersteuning voor het maken van Cosmos DB-eindpunten.
Gebruik de volgende opdracht om bij te werken naar de nieuwste versie van de azure-iot-extensie:
az extension update --name azure-iot
Als u een Event Hubs-eindpunt wilt maken, gebruikt u de autorisatieregel die u hebt gemaakt in de vereisten.
Gebruik de opdracht az eventhubs eventhub authorization-rule keys list om uw autorisatieregel weer te geven. Geef de volgende waarden op voor de parameters van de tijdelijke aanduiding:
parameter waarde eventhub_group Resourcegroep van de Event Hub. eventhub_namespace Naam van de Event Hubs-naamruimte. eventhub_name Naam van de Event Hub. rule_name De naam van de autorisatieregel voor de Event Hub. Als u het voorbeeld in de vereisten hebt gekopieerd, is RootManageSharedAccessKey
deze naam.az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
Kopieer uw Event Hub-verbindingsreeks uit de uitvoer.
Gebruik de opdracht az iot hub message-endpoint create eventhub om uw aangepaste eindpunt te maken. Geef de volgende waarden op voor de parameters van de tijdelijke aanduiding:
parameter waarde iothub_name De naam van de IoT-hub waar dit eindpunt wordt gemaakt. endpoint_name Een unieke naam voor het nieuwe eindpunt. eventhub_subscription Abonnements-id van de Event Hub. Dit argument kan worden weggelaten als de Event Hub zich in hetzelfde abonnement bevindt als de IoT-hub. eventhub_group Resourcegroep van de Event Hub. Dit argument kan worden weggelaten als de Event Hub zich in dezelfde resourcegroep bevindt als de IoT-hub. eventhub_connection_string De verbindingsreeks die u hebt gekopieerd uit de event hub-autorisatieregel. az iot hub message-endpoint create eventhub --hub-name {iothub_name} --endpoint-name {endpoint_name} --connection-string "{eventhub_connection_string}" --endpoint-subscription-id {eventhub_subscription} --endpoint-resource-group {eventhub_group}
Een eindpunt verwijderen
Als u een eindpunt uit uw IoT-hub wilt verwijderen, gebruikt u de opdracht az iot hub message-endpoint delete . Met deze opdracht kunt u één eindpunt verwijderen, alle eindpunten van één type verwijderen of alle eindpunten uit een hub verwijderen.
Met de volgende opdracht worden bijvoorbeeld alle eindpunten in een IoT-hub verwijderd die verwijzen naar opslagbronnen:
az iot hub message-endpoint delete --hub-name {iothub_name} --endpoint-type storage-container
Een IoT Hub-route maken
In IoT Hub kunt u een route maken om berichten te verzenden of gebeurtenissen vast te leggen. Elke route heeft een gegevensbron en een eindpunt. De gegevensbron is waar berichten of gebeurtenislogboeken vandaan komen. Het eindpunt is waar de berichten of gebeurtenislogboeken terechtkomen. U kiest locaties voor de gegevensbron en het eindpunt wanneer u een nieuwe route in uw IoT-hub maakt. U kunt desgewenst query's toevoegen aan berichtroutes om berichten of gebeurtenissen te filteren voordat ze naar het eindpunt gaan.
Notitie
In dit artikel wordt gebruikgemaakt van de opdrachtgroep az iot hub message-route , die is geïntroduceerd in versie 0.19.0 van de azure-iot-extensie voor de Azure CLI. In eerdere versies van de azure-iot-extensie is gebruikgemaakt van de opdrachtgroep az iot hub route , die vergelijkbaar is en nog steeds wordt ondersteund.
Gebruik de volgende opdracht om bij te werken naar de nieuwste versie van de azure-iot-extensie:
az extension update --name azure-iot
Gebruik de opdracht az iot hub message-route create om een nieuwe IoT Hub-route te maken met behulp van dat eindpunt. Geef de volgende waarden op voor de parameters van de tijdelijke aanduiding:
parameter waarde iothub_name De naam van de IoT-hub waar deze route wordt gemaakt. route_name Een unieke naam voor de nieuwe route. endpoint_name De naam van het eindpunt waarnaar de route gegevens verzendt. data_source De bron van de route. Geaccepteerde waarden zijn: deviceconnectionstateevents
,devicejoblifecycleevents
,devicelifecycleevents
,devicemessages
,digitaltwinchangeevents
, , ,invalid
oftwinchangeevents
.az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
Als u wilt controleren of de nieuwe route zich in uw IoT-hub bevindt, gebruikt u de opdracht az iot hub message-route list om alle routes in uw IoT-hub weer te geven:
az iot hub message-route list --hub-name {iothub_name}
Als het goed is, ziet u een antwoord in de Azure CLI die vergelijkbaar is met dit voorbeeld:
[ { "condition": "true", "endpointNames": [ "endpoint_name" ], "isEnabled": true, "name": "route_name", "source": "DeviceConnectionStateEvents" } ]
Een IoT Hub-route bijwerken
U kunt enkele eigenschappen van een route bijwerken nadat deze is gemaakt. U kunt de bron-, eindpunt-, voorwaarde- of ingeschakelde status van een bestaande route wijzigen.
Gebruik de opdracht az iot hub message-route show om de details van een route weer te geven.
az iot hub message-route show --hub-name {iothub_name} --route-name {route_name}
Gebruik de opdracht az iot hub message-route update om de eigenschappen van een route bij te werken. Met de volgende opdracht wordt bijvoorbeeld de bron van de route bijgewerkt.
az iot hub message-route update --hub-name {iothub_name} --route-name {route_name} --source devicejoblifecycleevents
Een IoT Hub-route verwijderen
Gebruik de opdracht az iot hub message-route delete om een route uit uw IoT-hub te verwijderen.
Als u een route verwijdert, wordt het eindpunt niet verwijderd omdat andere routes naar hetzelfde eindpunt kunnen verwijzen. Als u een eindpunt wilt verwijderen, kunt u dit afzonderlijk doen van het verwijderen van een route.
az iot hub message-route delete --hub-name {iothub_name} --route-name {route_name}
De terugvalroute beheren
De terugvalroute verzendt alle berichten van devicemessages
de bron die niet voldoen aan queryvoorwaarden op een van de bestaande routes naar het ingebouwde eindpunt.
Gebruik de opdracht az iot hub message-route fallback show om de status van de terugvalroute in uw IoT-hub te bekijken.
az iot hub message-route fallback show --hub-name {iothub_name}
Gebruik de opdracht az iot hub message-route fallback set om de terugvalroute in of uit te schakelen in uw IoT-hub.
az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}
Volgende stappen
In dit artikel hebt u geleerd hoe u een route en eindpunt maakt voor Event Hubs, Service Bus-wachtrijen en onderwerpen en Azure Storage.
Zie zelfstudie: Apparaatgegevens verzenden naar Azure Storage met behulp van IoT Hub-berichtroutering voor meer informatie over berichtroutering. In de zelfstudie maakt u een opslagroute en test u deze met een apparaat in uw IoT-hub.