Delen via


Routes en eindpunten maken en verwijderen met behulp van Azure Resource Manager

In dit artikel leest u hoe u uw Azure IoT Hub-sjabloon exporteert, een route toevoegt aan uw IoT-hub en de sjabloon vervolgens opnieuw implementeert in uw IoT-hub met behulp van de Azure CLI of Azure PowerShell. Gebruik een Azure Resource Manager-sjabloon om routes en eindpunten te maken. IoT Hub ondersteunt de volgende Azure-services als eindpunten:

  • Opslagcontainers
  • Event Hubs
  • Service Bus-wachtrijen
  • Service Bus-onderwerpen
  • Cosmos DB

Azure Resource Manager-sjablonen zijn handig als u resources wilt definiëren met behulp van een JSON-bestand. Elke Azure-resource heeft een sjabloon die de onderdelen definieert die in die resource worden gebruikt. U kunt alle Azure-resourcesjablonen exporteren.

Belangrijk

Wanneer u een Resource Manager-sjabloon gebruikt om een resource te implementeren, vervangt de sjabloon elke bestaande resource van het type dat u implementeert.

Wanneer u een nieuwe IoT-hub maakt, is het overschrijven van een bestaande geïmplementeerde resource geen probleem. Als u een nieuwe IoT-hub wilt maken, kunt u een basissjabloon gebruiken met de vereiste eigenschappen in plaats van een bestaande sjabloon te exporteren vanuit een IoT-hub die al is geïmplementeerd.

Als u echter een route toevoegt aan een bestaande IoT-hub, gebruikt u een sjabloon die u exporteert vanuit uw IoT-hub om ervoor te zorgen dat alle bestaande resources en eigenschappen verbonden blijven nadat u de bijgewerkte sjabloon hebt geïmplementeerd. Resources die al zijn geïmplementeerd, worden niet vervangen. Een geëxporteerde Resource Manager-sjabloon die u eerder hebt geïmplementeerd, bevat bijvoorbeeld opslaggegevens voor uw IoT-hub als u deze hebt verbonden met opslag.

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. Als u de stappen wilt doorlopen voor het instellen van een route waarmee berichten naar de opslag worden verzonden en vervolgens op een gesimuleerd apparaat wilt testen, raadpleegt u zelfstudie: Apparaatgegevens verzenden naar Azure Storage met behulp van IoT Hub-berichtroutering.

Vereisten

Bekijk de vereisten voor dit artikel op basis van het type eindpunt waarnaar u de berichten wilt routeren.

Azure Resource Manager-sjabloon

In dit artikel wordt een Azure Resource Manager-sjabloon in Azure Portal gebruikt om te werken met IoT Hub en andere Azure-services. Zie Wat zijn Azure Resource Manager-sjablonen voor meer informatie over het gebruik van Resource Manager-sjablonen?

Een 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. Vervolgens gebruikt u routeringsquery's om berichten of gebeurtenissen te filteren voordat ze naar het eindpunt gaan.

U kunt een Event Hub, een Service Bus-wachtrij of -onderwerp of een Azure-opslagaccount gebruiken om het eindpunt voor uw IoT-hubroute te zijn. De service die u gebruikt om uw eindpunt te maken, moet eerst aanwezig zijn in uw Azure-account.

De Resource Manager-sjabloon van uw IoT Hub exporteren

Exporteer eerst een Resource Manager-sjabloon uit uw IoT-hub. Door de sjabloon vanuit uw IoT-hub te exporteren, kunt u eindpunt- en routebronnen toevoegen en opnieuw implementeren zonder dat bestaande instelling verloren gaat.

  1. Ga in Azure Portal naar uw IoT-hub. Selecteer in het resourcemenu onder Automation de optie Sjabloon Exporteren.

    Schermopname van de locatie van de optie Sjabloon exporteren in het menu van een IoT Hub-resource.

  2. Voer in Exportsjabloon op het tabblad Sjabloon de volgende stappen uit:

    1. Bekijk het JSON-bestand dat is gegenereerd voor uw IoT-hub.

    2. Schakel het selectievakje Parameters opnemen uit.

    3. Selecteer Downloaden om een lokale kopie van het JSON-bestand te downloaden.

    Schermopname van de locatie van de knop Downloaden in het deelvenster Sjabloon exporteren.

    De sjabloon bevat verschillende tijdelijke aanduidingen die u kunt gebruiken om functies of services toe te voegen aan uw IoT-hub. Voor dit artikel voegt u alleen waarden toe aan eigenschappen die zich in of genest onder routingbevinden.

Een eindpunt toevoegen aan de sjabloon

Elke route verwijst naar een eindpunt, waar de berichten of gebeurtenislogboeken terechtkomen. Maak een eindpunt in uw IoT-hub waarnaar de route kan verwijzen. U kunt een Event Hub, een Service Bus-wachtrij of -onderwerp, een Azure-opslagaccount of een Cosmos DB-container gebruiken om het eindpunt voor uw IoT-hubroute te zijn. De service die u gebruikt om uw eindpunt te maken, moet eerst aanwezig zijn in uw Azure-account.

Uw IoT-hub heeft toegangsmachtigingen nodig voor elke eindpuntresource waarnaar berichten of logboeken worden verzonden. U kunt toegang bieden met behulp van beheerde identiteiten en Microsoft Entra-id of met behulp van verbindingsreeks s. Microsoft raadt u aan om verificatie met Entra-id als veiligere optie te gebruiken.

Voeg een Event Hubs-eindpunt toe aan uw Resource Manager-sjabloon. Zie Azure Resource Manager-sjabloon RoutingEventHubProperties voor meer informatie.

  1. Zoek in het JSON-bestand de "endpoints": [] eigenschap onder "routing".

  2. Vervang de "endpoints": [] regel door de volgende JSON:

    "endpoints": {
        "serviceBusQueues": [],
        "serviceBusTopics": [],
        "eventHubs": [
            {
                "endpointUri": "",
                "entityPath": "",
                "authenticationType": "identityBased",
                "identity": {
                    "userAssignedIdentity": ""
                },
                "name": "",
                "id": "",
                "subscriptionId": "",
                "resourceGroup": ""
            }
        ],
        "storageContainers": [],
        "cosmosDBSqlContainers": []
    },
    
  3. Werk de JSON bij met de volgende informatie over uw Event Hubs-resource:

    Eigenschappen Weergegeven als
    endpointUri (Als het verificatietype is identityBased; verwijder anders.) De hostnaam van uw Event Hubs-naamruimte in de indeling sb://<eventhubs_namespace_name>.servicebus.windows.net
    entityPath (Als het verificatietype is identityBased; verwijder anders.) De naam van uw Event Hub.
    authenticationType identityBased of keyBased. Microsoft raadt verificatie op basis van identiteit aan als de veiligere optie.
    identity (Als het verificatietype identityBased.) U kunt een door de gebruiker toegewezen beheerde identiteit of een door het systeem toegewezen beheerde identiteit gebruiken als voor uw IoT Hub een door het systeem toegewezen beheerde identiteit is ingeschakeld.

    Voor door de gebruiker toegewezen: de externe id van de beheerde identiteit met toegangsmachtigingen voor uw Event Hub in de indeling /subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>.

    Voor door het systeem toegewezen: laat de identiteitsparameter staan als een lege lijst. Bijvoorbeeld "identity": {},
    connectionString (Als het verificatietype keyBased.) De primaire verbindingsreeks van een van de gedeelde toegangsbeleidsregels van uw Event Hub in de indeling <connection_string>;EntityPath=<event_hub_name>. U kunt de verbindingsreeks waarde ophalen uit Azure Portal en vervolgens het entiteitspad toevoegen.
    naam Geef een unieke waarde op om uw eindpunt een naam te geven.
    id Laat deze staan als een lege tekenreeks. De Azure-service biedt een waarde wanneer u het eindpunt maakt.
    subscriptionId De id van het abonnement dat uw Event Hub bevat.
    resourceGroup De naam van de resourcegroep die uw Event Hub bevat.

    Tip

    Voor geheimenbeheer kunt u een parameterbestand maken of Azure Key Vault gebruiken om tijdens de implementatie beveiligde parameterwaarden door te geven.

Een route toevoegen aan de sjabloon

Voeg een routedefinitie toe aan uw Resource Manager-sjabloon. Zie RouteProperties voor Azure Resource Manager-sjablonen voor meer informatie.

  1. Zoek in het JSON-bestand de "routes": [] eigenschap, genest onder "routing"en voeg een nieuwe route toe.

    Let op

    Als u bestaande waarden "routes" vervangt door de routewaarden die worden gebruikt in de volgende codevoorbeelden, worden de bestaande routes verwijderd wanneer u implementeert. Als u bestaande routes wilt behouden, voegt u het nieuwe routeobject toe aan de "routes" lijst.

    "routes": [
        {
            "name": "",
            "source": "DeviceConnectionStateEvents",
            "condition": "true",
            "endpointNames": [
                ""
            ],
            "isEnabled": true
        }
    ],
    
  2. Werk de JSON bij met de volgende informatie over uw Cosmos DB-resource:

    Eigenschappen Waarde
    naam Geef een unieke waarde op om uw route een naam te geven.
    source Selecteer de bron van het bericht of de gebeurtenislogboeken om naar het eindpunt te routeren. Zie az iot hub route voor een lijst met bronopties.
    voorwaarde Een query om de brongegevens te filteren. Als er geen voorwaarde is vereist, zegt trueu. Zie de querysyntaxis van ioT Hub-berichtroutering voor meer informatie.
    endpointNames De naam van het bestaande eindpunt waar deze gegevens worden gerouteerd. Op dit moment is slechts één eindpunt toegestaan.
    isEnabled Stel deze optie in om true de route in te schakelen of false om de route uit te schakelen.
  3. Sla het JSON-bestand op.

De Resource Manager-sjabloon implementeren

Nu uw nieuwe eindpunt en route zijn toegevoegd aan de Resource Manager-sjabloon, kunt u het JSON-bestand nu weer implementeren in uw IoT-hub.

Lokale implementatie

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

Azure Cloud Shell-implementatie

Omdat Azure Cloud Shell wordt uitgevoerd in een webbrowser, kunt u het sjabloonbestand uploaden voordat u de implementatieopdracht uitvoert. Wanneer het bestand is geüpload, hebt u alleen de naam van het sjabloonbestand (in plaats van het volledige bestandspad) nodig om in de template-file parameter te gebruiken.

Schermopname van de locatie van de knop in Azure Cloud Shell om een bestand te uploaden.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

Notitie

Als de implementatie mislukt, gebruikt u de -verbose schakeloptie om informatie op te halen over de resources die u maakt. Gebruik de -debug schakeloptie voor meer informatie over foutopsporing.

Implementatie bevestigen

Ga in Azure Portal naar de resourcegroepresource om te bevestigen dat uw sjabloon is geïmplementeerd in Azure Portal. Selecteer In het resourcemenu onder Instellingen de optie Implementaties om de sjabloon te zien in een lijst met uw implementaties.

Schermopname van een lijst met implementaties voor een resource in Azure Portal, met een testsjabloon gemarkeerd.

Als u uw nieuwe route wilt weergeven in Azure Portal, gaat u naar uw IoT Hub-resource. Controleer in het deelvenster Berichtroutering op het tabblad Routes of uw route wordt weergegeven.

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.