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

In dit artikel wordt beschreven 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 voor Azure Event Hubs, Azure Service Bus wachtrijen en onderwerpen en Azure Storage.

Azure Resource Manager-sjablonen zijn handig als u resources wilt definiëren met behulp van een JSON-bestand. Elke Azure-resource heeft een sjabloon waarmee de onderdelen worden gedefinieerd 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 alle bestaande resources 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 met de vereiste eigenschappen gebruiken in plaats van een bestaande sjabloon te exporteren uit een IoT-hub die al is geïmplementeerd.

Als u echter een route toevoegt aan een bestaande IoT-hub Resource Manager sjabloon, gebruikt u een sjabloon die u vanuit uw IoT-hub exporteert 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, kan bijvoorbeeld opslaggegevens voor uw IoT-hub bevatten als u deze hebt verbonden met opslag.

Zie Use IoT Hub message routing to send device-to-cloud messages to different endpoints (IoT Hub berichtroutering gebruiken om apparaat-naar-cloud-berichten naar verschillende eindpunten te verzenden) voor meer informatie over de werking van routering in IoT Hub. Als u de stappen wilt doorlopen voor het instellen van een route waarmee berichten naar de opslag worden verzonden en vervolgens wilt testen op een gesimuleerd apparaat, raadpleegt u Zelfstudie: Apparaatgegevens verzenden naar Azure Storage met behulp van IoT Hub berichtroutering.

Vereisten

Voor de procedures die in het artikel worden beschreven, worden de volgende resources gebruikt:

  • Een Azure Resource Manager-sjabloon
  • Een IoT-hub
  • Een eindpuntservice in Azure

Azure Resource Manager-sjabloon

In dit artikel wordt een Azure Resource Manager-sjabloon in de 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.

IoT-hub

Als u een IoT-hubroute wilt maken, hebt u een IoT-hub nodig die u hebt gemaakt met behulp van Azure IoT Hub. Apparaatberichten en gebeurtenislogboeken zijn afkomstig van uw IoT-hub.

Zorg ervoor dat u de volgende hubresource gebruikt wanneer u uw IoT-hubroute maakt:

Eindpuntservice

Als u een IoT-hubroute wilt maken, moet u ten minste één andere Azure-service gebruiken als eindpunt voor de route. Het eindpunt ontvangt apparaatberichten en gebeurtenislogboeken. U kunt kiezen welke Azure-service u gebruikt voor een eindpunt om verbinding te maken met uw IoT-hubroute: Event Hubs, Service Bus-wachtrijen of -onderwerpen, of Azure Storage.

Zorg ervoor dat u een van de volgende resources hebt om te gebruiken wanneer u een eindpunt maakt voor uw IoT-hubroute:

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 maakt in uw IoT-hub. 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 als eindpunt voor uw IoT-hubroute. De service die u gebruikt om uw eindpunt te maken, moet eerst in uw Azure-account bestaan.

De Resource Manager-sjabloon exporteren vanuit uw IoT-hub

Exporteer eerst een Resource Manager sjabloon uit uw IoT-hub en voeg er vervolgens een route aan toe.

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

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

  2. Voer in Sjabloon exporteren 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 heeft 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 nieuw eindpunt toevoegen aan uw Resource Manager-sjabloon

Zoek in het JSON-bestand de "endpoints": [] eigenschap die is genest onder "routing". Voer de stappen uit om een nieuw eindpunt toe te voegen op basis van de Azure-service die u voor het eindpunt kiest: Event Hubs, Service Bus-wachtrijen of -onderwerpen, of Azure Storage.

Zie Quickstart: Een Event Hub maken met behulp van een Resource Manager sjabloon voor meer informatie over het maken van een Event Hubs-resource (met container).

Haal in de Azure Portal uw primaire connection string op uit uw Event Hubs-resource. Selecteer in het deelvenster Gedeeld toegangsbeleid van de resource een van uw beleidsregels om de sleutel- en connection string informatie te bekijken. Voeg de naam van de Event Hub toe aan het entiteitspad aan het einde van de connection string. Gebruik bijvoorbeeld ;EntityPath=my-event-hubs. Deze naam is de naam van uw Event Hub, niet de naam van uw naamruimte.

Gebruik namevoor een unieke waarde voor uw Event Hubs-eindpunt. Laat de id parameter als een lege tekenreeks staan. De Azure-service biedt een id waarde wanneer u het eindpunt implementeert.

"routing": {
   "endpoints": {
      "serviceBusQueues": [],
      "serviceBusTopics": [],
      "eventHubs": [
            {
               "connectionString": "my Event Hubs connection string + entity path",
               "authenticationType": "keyBased",
               "name": "my-event-hubs-endpoint",
               "id": "",
               "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
               "resourceGroup": "my-resource-group"
            }
      ],
      "storageContainers": [],
      "cosmosDBSqlCollections": []
   },
},

Een nieuwe route toevoegen aan uw Resource Manager-sjabloon

Zoek in het JSON-bestand de "routes": [] eigenschap, genest onder "routing", en voeg de volgende nieuwe route toe op basis van de eindpuntservice die u hebt gekozen: Event Hubs, Service Bus-wachtrijen of -onderwerpen of Azure Storage.

De standaardroute voor terugval verzamelt berichten van DeviceMessages. Kies een andere optie, zoals DeviceConnectionStateEvents. Zie az iot hub route voor meer informatie over bronopties.

Waarschuwing

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

Zie Azure Resource Manager sjabloonresourcedefinitie voor meer informatie over de sjabloon.

"routes": [
    {
        "name": "MyIotHubRoute",
        "source": "DeviceConnectionStateEvents",
        "condition": "true",
        "endpointNames": [
        "my-event-hubs-endpoint"
        ],
        "isEnabled": true
    }
],

Sla het JSON-bestand op.

De Resource Manager-sjabloon implementeren

Nu uw nieuwe eindpunt en route zijn toegevoegd aan de sjabloon Resource Manager, 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"

Implementatie van Azure Cloud Shell

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

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 schakeloptie -debug voor meer informatie over foutopsporing.

Implementatie bevestigen

Ga in de Azure Portal naar uw resourcegroepresource om te controleren of de sjabloon is geïmplementeerd in Azure. Selecteer in het resourcemenu onder Instellingende optie Implementaties om de sjabloon in een lijst met uw implementaties weer te geven.

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

Als u uw nieuwe route in de Azure Portal wilt bekijken, 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.