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 enhet till moln 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-meddelanderoutning.
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 installera Azure CLI-tillägget vid första användningen. 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
Ha en IoT-hubb i din Azure-prenumeration. Om du inte har någon hubb ännu kan du följa stegen i Skapa en IoT-hubb.
Slutpunktstjänst
Du behöver minst en annan Azure-tjänst för att använda som slutpunkt till 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. Slutför stegen för att skapa en slutpunktstjänst för den tjänst som du väljer att använda.
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.
Dricks
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. 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, Lagring 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.
Kommentar
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 stöder skapandet av 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örhandskraven.
Använd kommandot az eventhubs eventhub authorization-rule keys list för att visa 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 Namn 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ändelsehubben 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 Den anslutningssträng 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 enskild 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 samla in 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.
Kommentar
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 Källan till vägen. 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 slutpunkten 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 reserv 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 reserv 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 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.