Skapa och ta bort vägar och slutpunkter med hjälp av Azure CLI
Den här artikeln visar hur du hanterar Azure IoT Hub vägar och slutpunkter med hjälp av Azure CLI. Lär dig hur du använder Azure CLI för att skapa vägar och slutpunkter för Azure Event Hubs, Azure Service Bus köer och ämnen, Azure Storage och Cosmos DB.
Mer information om hur routning fungerar i IoT Hub finns i Använda IoT Hub meddelanderoutning för att skicka meddelanden från enheten till molnet till olika slutpunkter. Information om hur du konfigurerar en väg som skickar meddelanden till lagring och sedan testar på en simulerad enhet finns i Självstudie: Skicka enhetsdata till Azure Storage med hjälp av IoT Hub meddelandedirigering.
Förutsättningar
De procedurer som beskrivs i artikeln använder följande resurser:
- Azure CLI
- En IoT Hub
- En slutpunktstjänst i Azure
Azure CLI
Den här artikeln använder Azure CLI för att arbeta med IoT Hub och andra Azure-tjänster. Du kan välja hur du ska komma åt Azure CLI:
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du 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. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att göra det installerar du Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
IoT Hub
Du behöver en IoT-hubb i din Azure-prenumeration. Om du inte har någon hubb ännu kan du följa stegen för att skapa en IoT-hubb med hjälp av Azure CLI.
Slutpunktstjänst
Du behöver minst en annan Azure-tjänst som ska användas som slutpunkt för vägen. Slutpunkten tar emot enhetsmeddelanden och händelseloggar.
Bestäm vilken Azure-tjänst du vill använda som slutpunkt för att ta emot dirigerade enhets- och händelsedata: en händelsehubb, en tjänstkö eller ett ämne, ett lagringskonto eller en Cosmos DB-container. För den tjänst som du väljer att använda slutför du stegen för att skapa en slutpunktstjänst.
Skapa ett Event Hubs-namnområde och en händelsehubb. Mer information finns i Snabbstart: Skapa en händelsehubb med hjälp av Azure CLI.
Skapa en auktoriseringsregel som ska användas för att ge IoT Hub behörighet att skicka data till händelsehubben.
Tips
Parameterns
name
värdeRootManageSharedAccessKey
är standardnamnet som tillåter hantera, skicka, lyssna anspråk (åtkomst). Om du vill begränsa anspråken ger du parameternname
ditt eget unika namn och inkluderar--rights
flaggan följt av ett av anspråken. Till exempel--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
Mer information finns i Auktorisera åtkomst till Azure Event Hubs.
Skapa en slutpunkt
Alla IoT Hub vägar pekar på en slutpunkt, som tar emot dirigerade enhets- och händelsedata. Mer än en väg kan peka på samma slutpunkt. För närvarande stöder IoT Hub slutpunkter för händelsehubbar, Service Bus-köer eller -ämnen, Storage och Cosmos DB. En instans av tjänsten som du använder för slutpunkten måste finnas i din Azure-prenumeration innan du skapar slutpunkten.
Anteckning
Den här artikeln använder kommandogruppen az iot hub message-endpoint , som introducerades i version 0.19.0 av azure-iot-tillägget för Azure CLI. Tidigare versioner av azure-iot-tillägget använde kommandogruppen az iot hub routing-endpoint , som är liknande och fortfarande stöds men inte har stöd för att skapa Cosmos DB-slutpunkter.
Använd följande kommando för att uppdatera till den senaste versionen av azure-iot-tillägget:
az extension update --name azure-iot
Om du vill skapa en Event Hubs-slutpunkt använder du auktoriseringsregeln som du skapade i förutsättningarna.
Använd kommandot az eventhubs eventhub authorization-rule keys list för att lista din auktoriseringsregel. Ange följande värden för platshållarparametrarna:
parameter värde eventhub_group Resursgrupp för händelsehubben. eventhub_namespace Namn på Event Hubs-namnområdet. eventhub_name Namnet på händelsehubben. rule_name Namnet på auktoriseringsregeln för händelsehubben. Om du kopierade exemplet i förhandskraven är RootManageSharedAccessKey
det här namnet .az eventhubs eventhub authorization-rule keys list --resource-group {eventhub_group} --namespace-name {eventhub_namespace} --eventhub-name my-event-hubs --name {rule_name}
Kopiera händelsehubbens anslutningssträng från utdata.
Använd kommandot az iot hub message-endpoint create eventhub för att skapa din anpassade slutpunkt. Ange följande värden för platshållarparametrarna:
parameter värde iothub_name Namnet på den IoT-hubb där den här slutpunkten skapas. endpoint_name Ett unikt namn för den nya slutpunkten. eventhub_subscription Prenumerations-ID för händelsehubben. Det här argumentet kan utelämnas om händelsehubben finns i samma prenumeration som IoT-hubben. eventhub_group Resursgrupp för händelsehubben. Det här argumentet kan utelämnas om händelsehubben finns i samma resursgrupp som IoT-hubben. eventhub_connection_string Anslutningssträngen som du kopierade från händelsehubbens auktoriseringsregel. 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}
Ta bort en slutpunkt
Om du vill ta bort en slutpunkt från din IoT-hubb använder du kommandot az iot hub message-endpoint delete . Med det här kommandot kan du ta bort en enda slutpunkt, ta bort alla slutpunkter av en enda typ eller ta bort alla slutpunkter från en hubb.
Följande kommando tar till exempel bort alla slutpunkter i en IoT-hubb som pekar på Lagringsresurser:
az iot hub message-endpoint delete --hub-name {iothub_name} --endpoint-type storage-container
Skapa en IoT Hub väg
I IoT Hub kan du skapa en väg för att skicka meddelanden eller avbilda händelser. Varje väg har en datakälla och en slutpunkt. Datakällan är den där meddelanden eller händelseloggar kommer från. Slutpunkten är där meddelandena eller händelseloggarna hamnar. Du väljer platser för datakällan och slutpunkten när du skapar en ny väg i din IoT-hubb. Du kan också lägga till frågor i meddelandevägar för att filtrera meddelanden eller händelser innan de går till slutpunkten.
Anteckning
Den här artikeln använder kommandogruppen az iot hub message-route , som introducerades i version 0.19.0 av azure-iot-tillägget för Azure CLI. Tidigare versioner av azure-iot-tillägget använde kommandogruppen az iot hub route , som är liknande och fortfarande stöds.
Använd följande kommando för att uppdatera till den senaste versionen av azure-iot-tillägget:
az extension update --name azure-iot
Använd kommandot az iot hub message-route create för att skapa en ny IoT Hub väg med hjälp av den slutpunkten. Ange följande värden för platshållarparametrarna:
parameter värde iothub_name Namnet på den IoT-hubb där den här vägen skapas. route_name Ett unikt namn för den nya vägen. endpoint_name Namnet på den slutpunkt som vägen ska skicka data till. data_source Vägens källa. Godkända värden är: deviceconnectionstateevents
,devicejoblifecycleevents
,devicelifecycleevents
,devicemessages
,digitaltwinchangeevents
,invalid
ellertwinchangeevents
.az iot hub message-route create --hub-name {iothub_name} --route-name {route_name} --endpoint-name {endpoint_name} --source {data_source}
För att bekräfta att den nya vägen finns i din IoT-hubb använder du kommandot az iot hub message-route list för att se alla vägar i din IoT-hubb:
az iot hub message-route list --hub-name {iothub_name}
Du bör se ett svar i Azure CLI som liknar det här exemplet:
[ { "condition": "true", "endpointNames": [ "endpoint_name" ], "isEnabled": true, "name": "route_name", "source": "DeviceConnectionStateEvents" } ]
Uppdatera en IoT Hub väg
Du kan uppdatera vissa egenskaper för en väg när den har skapats. Du kan ändra källan, slutpunkten, villkoret eller det aktiverade tillståndet för en befintlig väg.
Använd kommandot az iot hub message-route show för att visa information om en väg.
az iot hub message-route show --hub-name {iothub_name} --route-name {route_name}
Använd kommandot az iot hub message-route update för att uppdatera egenskaperna för en väg. Följande kommando uppdaterar till exempel vägens källa.
az iot hub message-route update --hub-name {iothub_name} --route-name {route_name} --source devicejoblifecycleevents
Ta bort en IoT Hub väg
Använd kommandot az iot hub message-route delete för att ta bort en väg från din IoT-hubb.
Om du tar bort en väg tas inte dess slutpunkt bort eftersom andra vägar kan peka på samma slutpunkt. Om du vill ta bort en slutpunkt kan du göra det separat från att ta bort en väg.
az iot hub message-route delete --hub-name {iothub_name} --route-name {route_name}
Hantera återställningsvägen
Återställningsvägen skickar alla meddelanden från devicemessages
källan som inte uppfyller frågevillkoren på någon av de befintliga vägarna till den inbyggda slutpunkten.
Använd kommandot az iot hub message-route fallback show för att se status för återställningsvägen i din IoT-hubb.
az iot hub message-route fallback show --hub-name {iothub_name}
Använd kommandot az iot hub message-route fallback set för att aktivera eller inaktivera återställningsvägen i din IoT-hubb.
az iot hub message-route fallback set --hub-name {iothub_name} --enabled {true_false}
Nästa steg
I den här artikeln har du lärt dig hur du skapar en väg och en slutpunkt för Event Hubs, Service Bus-köer och -ämnen samt Azure Storage.
Mer information om meddelanderoutning finns i Självstudie: Skicka enhetsdata till Azure Storage med hjälp av IoT Hub meddelanderoutning. I självstudien skapar du en lagringsväg och testar den med en enhet i din IoT-hubb.