Skapa och ta bort vägar och slutpunkter med hjälp av Azure Resource Manager
Den här artikeln visar hur du exporterar din Azure IoT Hub-mall, lägger till en väg till din IoT-hubb och sedan distribuerar om mallen till din IoT-hubb med hjälp av Azure CLI eller Azure PowerShell. Använd en Azure Resource Manager-mall för att skapa vägar och slutpunkter. IoT Hub stöder följande Azure-tjänster som slutpunkter:
- Lagringscontainrar
- Event Hubs
- Service Bus-köer
- Service Bus-avsnitt
- Cosmos DB
Azure Resource Manager-mallar är användbara när du vill definiera resurser med hjälp av en JSON-fil. Varje Azure-resurs har en mall som definierar de komponenter som används i den resursen. Du kan exportera alla Azure-resursmallar.
Viktigt!
När du använder en Resource Manager-mall för att distribuera en resurs ersätter mallen alla befintliga resurser av den typ som du distribuerar.
När du skapar en ny IoT-hubb är det inte något problem att skriva över en befintlig distribuerad resurs. Om du vill skapa en ny IoT-hubb kan du använda en grundläggande mall som har de egenskaper som krävs i stället för att exportera en befintlig mall från en IoT-hubb som redan har distribuerats.
Men om du lägger till en väg till en befintlig IoT-hubb använder du en mall som du exporterar från din IoT-hubb för att säkerställa att alla befintliga resurser och egenskaper förblir anslutna när du har distribuerat den uppdaterade mallen. Resurser som redan har distribuerats ersätts inte. En exporterad Resource Manager-mall som du tidigare distribuerade kan till exempel innehålla lagringsinformation för din IoT-hubb om du har anslutit den till lagringen.
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
Granska förutsättningarna för den här artikeln baserat på vilken typ av slutpunkt du vill dirigera meddelandena till.
En Azure-prenumeration Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.
En IoT-hubb. Om du inte har någon hubb kan du följa stegen för att skapa en IoT-hubb.
En Event Hubs-resurs (med container). Om du behöver skapa en ny Event Hubs-resurs kan du läsa Snabbstart: Skapa en händelsehubb med hjälp av en Resource Manager-mall.
(Rekommenderas) En hanterad identitet med rollbaserad åtkomstkontrollbehörighet för Event Hubs-namnområdet. Mer information finns i Autentisera en hanterad identitet med Microsoft Entra-ID för åtkomst till Event Hubs-resurser.
Azure Resource Manager-mall
Den här artikeln använder en Azure Resource Manager-mall i Azure Portal för att arbeta med IoT Hub och andra Azure-tjänster. Mer information om hur du använder Resource Manager-mallar finns i Vad är Azure Resource Manager-mallar?
Skapa en 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. Sedan använder du routningsfrågor för att filtrera meddelanden eller händelser innan de går till slutpunkten.
Du kan använda en händelsehubb, en Service Bus-kö eller ett ämne eller ett Azure-lagringskonto som slutpunkt för din IoT Hub-väg. Den tjänst som du använder för att skapa slutpunkten måste först finnas i ditt Azure-konto.
Exportera IoT-hubbens Resource Manager-mall
Exportera först en Resource Manager-mall från din IoT-hubb. Genom att exportera mallen från din IoT-hubb kan du lägga till slutpunkts- och routningsresurser och distribuera om utan att förlora den befintliga inställningen.
I Azure Portal går du till din IoT-hubb. På resursmenyn under Automation väljer du Exportera mall.
I Exportera mall går du till fliken Mall och utför följande steg:
Visa JSON-filen som genereras för din IoT-hubb.
Avmarkera kryssrutan Inkludera parametrar .
Välj Ladda ned för att ladda ned en lokal kopia av JSON-filen.
Mallen har flera platshållare som du kan använda för att lägga till funktioner eller tjänster i din IoT-hubb. I den här artikeln lägger du bara till värden i egenskaper som är i eller kapslade under
routing
.
Lägga till en slutpunkt i mallen
Varje väg pekar på en slutpunkt, där meddelandena eller händelseloggarna hamnar. Skapa en slutpunkt i din IoT-hubb som vägen kan referera till. Du kan använda en händelsehubb, en Service Bus-kö eller ett ämne, ett Azure-lagringskonto eller en Cosmos DB-container som slutpunkt för din IoT Hub-väg. Den tjänst som du använder för att skapa slutpunkten måste först finnas i ditt Azure-konto.
Din IoT-hubb behöver åtkomstbehörigheter för alla slutpunktsresurser som den skickar meddelanden eller loggar till. Du kan ge åtkomst med hjälp av hanterade identiteter och Microsoft Entra-ID eller med hjälp av anslutningssträng. Microsoft rekommenderar att du autentiserar med Entra-ID som det säkrare alternativet.
Lägg till en Event Hubs-slutpunkt i din Resource Manager-mall. Mer information finns i Azure Resource Manager-mallen RoutingEventHubProperties.
I JSON-filen letar du reda på egenskapen
"endpoints": []
som är kapslad under"routing"
.Ersätt raden
"endpoints": []
med följande JSON:"endpoints": { "serviceBusQueues": [], "serviceBusTopics": [], "eventHubs": [ { "endpointUri": "", "entityPath": "", "authenticationType": "identityBased", "identity": { "userAssignedIdentity": "" }, "name": "", "id": "", "subscriptionId": "", "resourceGroup": "" } ], "storageContainers": [], "cosmosDBSqlContainers": [] },
Uppdatera JSON med följande information om din Event Hubs-resurs:
Property Värde endpointUri (Om autentiseringstypen är identityBased
; annars tar du bort.) Värdnamnet för event hubs-namnområdet i formatetsb://<eventhubs_namespace_name>.servicebus.windows.net
entityPath (Om autentiseringstypen är identityBased
; annars tar du bort.) Namnet på händelsehubben.authenticationType identityBased
ellerkeyBased
. Microsoft rekommenderar identitetsbaserad autentisering som det säkrare alternativet.identitet (Om autentiseringstypen är identityBased
.) Du kan använda en användartilldelad hanterad identitet eller en systemtilldelad hanterad identitet om din IoT Hub har systemtilldelad hanterad identitet aktiverad.
För användartilldelad: Det externa ID:t för den hanterade identiteten med åtkomstbehörighet till händelsehubben i formatet/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>
.
För systemtilldelad: Lämna identitetsparametern som en tom lista. Till exempel:"identity": {},
connectionString (Om autentiseringstypen är keyBased
.) Den primära anslutningssträng från en av händelsehubbens principer för delad åtkomst i formatet<connection_string>;EntityPath=<event_hub_name>.
Du kan hämta värdet anslutningssträng från Azure Portal och sedan lägga till entitetssökvägen.name Ange ett unikt värde för att ge slutpunkten ett namn. id Lämna som en tom sträng. Azure-tjänsten ger ett värde när du skapar slutpunkten. subscriptionId ID:t för prenumerationen som innehåller din händelsehubb. resourceGroup Namnet på resursgruppen som innehåller din händelsehubb. Dricks
För hantering av hemligheter kan du skapa en parameterfil eller använda Azure Key Vault för att skicka säkra parametervärden under distributionen.
Lägga till en väg i mallen
Lägg till en routningsdefinition i Resource Manager-mallen. Mer information finns i Azure Resource Manager-mallen RouteProperties.
Leta reda på
"routes": []
egenskapen i JSON-filen, kapslad under"routing"
och lägg till en ny väg.Varning
Om du ersätter befintliga värden för
"routes"
med de vägvärden som används i följande kodexempel tas de befintliga vägarna bort när du distribuerar. Om du vill bevara befintliga vägar lägger du till det nya vägobjektet i"routes"
listan."routes": [ { "name": "", "source": "DeviceConnectionStateEvents", "condition": "true", "endpointNames": [ "" ], "isEnabled": true } ],
Uppdatera JSON med följande information om din Cosmos DB-resurs:
Property Värde name Ange ett unikt värde för att namnge din väg. source Välj meddelande- eller händelseloggkällan för att dirigera till slutpunkten. En lista över källalternativ finns i az iot hub route (az iot hub route). villkor En fråga för att filtrera källdata. Om inget villkor krävs, till exempel true
. Mer information finns i Frågesyntax för IoT Hub-meddelanderoutning.endpointNames Namnet på den befintliga slutpunkten där dessa data ska dirigeras. För närvarande tillåts endast en slutpunkt. isEnabled Ange till true
för att aktivera vägen ellerfalse
för att inaktivera vägen.Spara JSON-filen.
Distribuera Resource Manager-mallen
När den nya slutpunkten och vägen har lagts till i Resource Manager-mallen kan du nu distribuera JSON-filen tillbaka till din IoT-hubb.
Lokal distribution
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "my\path\to\template.json"
Azure Cloud Shell-distribution
Eftersom Azure Cloud Shell körs i en webbläsare kan du ladda upp mallfilen innan du kör distributionskommandot. När filen har laddats upp behöver du bara mallfilens namn (i stället för hela filsökvägen) som ska användas i parametern template-file
.
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "template.json"
Kommentar
Om distributionen misslyckas använder du växeln -verbose
för att hämta information om de resurser som du skapar. Använd växeln -debug
för att få mer information om felsökning.
Bekräfta distributionen
Om du vill bekräfta att mallen har distribuerats till Azure går du till resursgruppsresursen i Azure Portal. I resursmenyn under Inställningar väljer du Distributioner för att se mallen i en lista över dina distributioner.
Om du vill visa din nya väg i Azure Portal går du till din IoT Hub-resurs. I fönstret Meddelanderoutning på fliken Vägar kontrollerar du att din väg visas.
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.