Dela via


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.

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.

  1. I Azure Portal går du till din IoT-hubb. På resursmenyn under Automation väljer du Exportera mall.

    Skärmbild som visar platsen för alternativet Exportera mall i menyn för en IoT Hub-resurs.

  2. I Exportera mall går du till fliken Mall och utför följande steg:

    1. Visa JSON-filen som genereras för din IoT-hubb.

    2. Avmarkera kryssrutan Inkludera parametrar .

    3. Välj Ladda ned för att ladda ned en lokal kopia av JSON-filen.

    Skärmbild som visar platsen för knappen Ladda ned i fönstret Exportera mall.

    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.

  1. I JSON-filen letar du reda på egenskapen "endpoints": [] som är kapslad under "routing".

  2. Ersätt raden "endpoints": [] med följande JSON:

    "endpoints": {
        "serviceBusQueues": [],
        "serviceBusTopics": [],
        "eventHubs": [
            {
                "endpointUri": "",
                "entityPath": "",
                "authenticationType": "identityBased",
                "identity": {
                    "userAssignedIdentity": ""
                },
                "name": "",
                "id": "",
                "subscriptionId": "",
                "resourceGroup": ""
            }
        ],
        "storageContainers": [],
        "cosmosDBSqlContainers": []
    },
    
  3. 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 formatet sb://<eventhubs_namespace_name>.servicebus.windows.net
    entityPath (Om autentiseringstypen är identityBased; annars tar du bort.) Namnet på händelsehubben.
    authenticationType identityBased eller keyBased. 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.

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.

  1. 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
        }
    ],
    
  2. 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 eller false för att inaktivera vägen.
  3. 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 .

Skärmbild som visar platsen för knappen i Azure Cloud Shell för att ladda upp en fil.

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.

Skärmbild som visar en lista över distributioner för en resurs i Azure Portal med en testmall markerad.

Om du vill visa din nya väg i Azure Portal går du till din IoT Hub-resurs. I fönstret Meddelanderoutningfliken 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.