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:
- Een IoT-hub in uw Azure-abonnement. Als u nog geen hub hebt, kunt u de stappen volgen om een IoT-hub te maken met behulp van een Azure Resource Manager-sjabloon (PowerShell).
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 Event Hubs-resource (met container). Als u een nieuwe Event Hubs-resource wilt maken, raadpleegt u Quickstart: Een Event Hub maken met behulp van een Resource Manager-sjabloon.
Een Service Bus-wachtrijresource. Als u een nieuwe Service Bus-wachtrij wilt maken, raadpleegt u Quickstart: Een Service Bus-naamruimte en een wachtrij maken met behulp van een Resource Manager-sjabloon.
Een Service Bus-onderwerpresource. Als u een nieuw Service Bus-onderwerp wilt maken, raadpleegt u Quickstart: Een Service Bus-naamruimte maken met een onderwerp en abonnement met behulp van een Resource Manager-sjabloon.
Een Azure Storage-resource. Zie Een opslagaccount maken als u een nieuwe Azure Storage wilt maken.
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.
Ga in de Azure Portal naar uw IoT-hub. Selecteer in het resourcemenu onder Automatisering de optie Sjabloon exporteren.
Voer in Sjabloon exporteren op het tabblad Sjabloon de volgende stappen uit:
Bekijk het JSON-bestand dat is gegenereerd voor uw IoT-hub.
Schakel het selectievakje Parameters opnemen uit.
Selecteer Downloaden om een lokale kopie van het JSON-bestand te downloaden.
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
routing
bevinden.
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 name
voor 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.
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.
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.