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.
Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account voordat u begint.
Een IoT-hub. Als u geen hub hebt, kunt u de stappen volgen om een IoT-hub te maken.
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.
(Aanbevolen) Een beheerde identiteit met op rollen gebaseerde toegangsbeheermachtigingen voor de Event Hubs-naamruimte. Zie Een beheerde identiteit verifiëren met Microsoft Entra ID voor toegang tot Event Hubs-resources voor meer informatie.
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.
Ga in Azure Portal naar uw IoT-hub. Selecteer in het resourcemenu onder Automation de optie Sjabloon Exporteren.
Voer in Exportsjabloon 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 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
routing
bevinden.
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.
Zoek in het JSON-bestand de
"endpoints": []
eigenschap onder"routing"
.Vervang de
"endpoints": []
regel door de volgende JSON:"endpoints": { "serviceBusQueues": [], "serviceBusTopics": [], "eventHubs": [ { "endpointUri": "", "entityPath": "", "authenticationType": "identityBased", "identity": { "userAssignedIdentity": "" }, "name": "", "id": "", "subscriptionId": "", "resourceGroup": "" } ], "storageContainers": [], "cosmosDBSqlContainers": [] },
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 indelingsb://<eventhubs_namespace_name>.servicebus.windows.net
entityPath (Als het verificatietype is identityBased
; verwijder anders.) De naam van uw Event Hub.authenticationType identityBased
ofkeyBased
. 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.
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 } ],
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 true
u. 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 offalse
om de route uit te schakelen.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.
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.
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.