Erstellen und Löschen von Routen und Endpunkten mithilfe von Azure Resource Manager
In diesem Artikel wird gezeigt, wie Sie Ihre Azure IoT Hub-Vorlage exportieren, Ihrem IoT-Hub eine Route hinzufügen und dann die Vorlage mithilfe der Azure-Befehlszeilenschnittstelle (Azure CLI) oder von Azure PowerShell auf Ihrem IoT-Hub erneut bereitstellen. Verwenden einer Azure Resource Manager-Vorlage zum Erstellen von Routen und Endpunkten IoT Hub unterstützt die folgenden Azure-Dienste als Endpunkte:
- Speichercontainer
- Event Hubs
- Service Bus-Warteschlangen
- Service Bus-Themen
- Cosmos DB
Azure Resource Manager-Vorlagen sind nützlich, wenn Sie Ressourcen mithilfe einer JSON-Datei definieren möchten. Jede Azure-Ressource enthält eine Vorlage zum Definieren der Komponenten definiert, die in dieser Ressource verwendet werden. Sie können alle Azure-Ressourcenvorlagen exportieren.
Wichtig
Wenn Sie eine Resource Manager-Vorlage zum Bereitstellen einer Ressource verwenden, ersetzt die Vorlage jede vorhandene Ressource des gerade bereitgestellten Typs.
Wenn Sie einen neuen IoT-Hub erstellen, ist das Überschreiben einer vorhandenen bereitgestellten Ressource kein Problem. Zum Erstellen eines neuen IoT-Hubs können Sie eine Basisvorlage mit den erforderlichen Eigenschaften verwenden, statt eine vorhandene Vorlage aus einem schon bereitgestellten IoT-Hub zu exportieren.
Wenn Sie jedoch einem vorhandenen IoT-Hub eine Route hinzufügen, verwenden Sie eine Vorlage, die Sie aus Ihrem IoT-Hub exportieren. Auf diese Weise können Sie sicherstellen, dass alle vorhandenen Ressourcen und Eigenschaften verbunden bleiben, nachdem Sie die aktualisierte Vorlage bereitgestellt haben. Ressourcen, die schon bereitgestellt wurden, werden nicht ersetzt. So könnte beispielsweise eine exportierte Resource Manager-Vorlage, die Sie zuvor bereitgestellt haben, Speicherinformationen für Ihren IoT-Hub enthalten, wenn Sie ihn mit dem Speicher verbunden haben.
Weitere Informationen zur Funktionsweise des Routings in IoT Hub finden Sie unter Verwenden des IoT Hub-Nachrichtenroutings zum Senden von D2C-Nachrichten an verschiedene Endpunkte. Informationen zu den Schritten zum Einrichten einer Route, die Nachrichten an den Speicher sendet, mit anschließendem Testen auf einem simulierten Gerät finden Sie im Tutorial: Senden von Gerätedaten an Azure Storage über IoT Hub-Nachrichtenrouting.
Voraussetzungen
Sehen Sie sich die Voraussetzungen für diesen Artikel basierend auf dem Endpunkttyp an, an den Sie die Nachrichten weiterleiten möchten.
- Event Hubs
- Service Bus-Warteschlange
- Service Bus-Topic
- Azure Storage (in englischer Sprache)
- Cosmos DB
Ein Azure-Abonnement. Wenn Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.
Einen IoT-Hub. Wenn Sie keinen Hub haben, können Sie die Schritte zum Erstellen eines IoT-Hubs ausführen.
Eine Event Hubs-Ressource (mit Container). Wenn Sie eine neue Event Hubs-Ressource erstellen müssen, lesen Sie den Schnellstart: Erstellen eines Event Hubs mithilfe einer Resource Manager-Vorlage.
(Empfohlen) Eine verwaltete Identität mit Berechtigungen der rollenbasierten Zugriffssteuerung für den Event Hubs-Namespace. Weitere Informationen finden Sie unter Authentifizieren einer verwalteten Identität mit Microsoft Entra ID für den Zugriff auf Event Hubs-Ressourcen.
Azure Resource Manager-Vorlage
In diesem Artikel wird eine Azure Resource Manager-Vorlage im Azure-Portal zum Arbeiten mit IoT Hub und anderen Azure-Diensten verwendet. Weitere Informationen zur Verwendung von Resource Manager-Vorlagen finden Sie unter Was sind Azure Resource Manager-Vorlagen?
Erstellen einer Route
In IoT Hub können Sie eine Route erstellen, um Nachrichten zu senden oder Ereignisse zu erfassen. Bei jeder Route gibt es eine Datenquelle und einen Endpunkt. Die Datenquelle ist der Ursprung von Nachrichten oder Ereignisprotokollen. Der Endpunkt ist der Ort, an dem die Nachrichten oder Ereignisprotokolle enden. Sie wählen Speicherorte für die Datenquelle und den Endpunkt aus, wenn Sie in Ihrem IoT-Hub eine neue Route erstellen. Anschließend verwenden Sie Routingabfragen zum Filtern von Nachrichten oder Ereignissen, bevor sie zum Endpunkt gelangen.
Sie können einen Event Hub, eine Service Bus-Warteschlange oder ein Service Bus-Thema oder aber ein Azure-Speicherkonto als Endpunkt für Ihre IoT-Hub-Route verwenden. Der Dienst, den Sie zum Erstellen Ihres Endpunkts verwenden, muss in Ihrem Azure-Konto zuerst vorhanden sein.
Exportieren der Resource Manager-Vorlage des IoT-Hubs
Exportieren Sie zunächst eine Resource Manager-Vorlage aus Ihrem IoT-Hub. Wenn Sie die Vorlage aus dem IoT-Hub exportieren, können Sie Endpunkt- und Routenressourcen hinzufügen und erneut bereitstellen, ohne vorhandene Einstellungen zu verlieren.
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub. Wählen Sie im Ressourcenmenü unter Automatisierung die Option Vorlage exportieren aus.
Führen Sie unter Vorlage exportieren auf der Registerkarte Vorlage die folgenden Schritte aus:
Zeigen Sie die JSON-Datei an, die für Ihren IoT-Hub generiert wird.
Deaktivieren Sie das Kontrollkästchen Parameter einschließen.
Wählen Sie Herunterladen aus, um eine lokale Kopie der JSON-Datei herunterzuladen.
Die Vorlage enthält mehrere Platzhalter, über die Sie Ihrem IoT-Hub Features oder Dienste hinzufügen können. Fügen Sie bei diesem Artikel Werte nur den Eigenschaften hinzu, die in
routing
enthalten oder darunter geschachtelt sind.
Hinzufügen eines Endpunkts zur Vorlage
Jede Route verweist auf einen Endpunkt, zu dem die Nachrichten oder Ereignisprotokolle letztendlich gelangen. Erstellen Sie einen Endpunkt in Ihrem IoT-Hub, auf den die Route verweisen kann. Sie können einen Event Hub, eine Service Bus-Warteschlange oder ein Service Bus-Thema, ein Azure-Speicherkonto oder einen Cosmos DB-Container als Endpunkt für Ihre IoT-Hub-Route verwenden. Der Dienst, den Sie zum Erstellen Ihres Endpunkts verwenden, muss in Ihrem Azure-Konto zuerst vorhanden sein.
Der IoT-Hub benötigt Zugriffsberechtigungen für jede Endpunktressource, an die Nachrichten oder Protokolle gesendet werden. Sie können Zugriff über verwaltete Identitäten und Microsoft Entra ID oder mithilfe von Verbindungszeichenfolgen bereitstellen. Microsoft empfiehlt die Authentifizierung mit Entra ID. Dies ist die sicherere Option.
- Event Hubs
- Service Bus-Warteschlange
- Service Bus-Topic
- Azure Storage (in englischer Sprache)
- Cosmos DB
Fügen Sie Ihrer Resource Manager-Vorlage einen Event Hubs-Endpunkt hinzu. Weitere Informationen finden Sie unter „RoutingEventHubProperties“ in Azure Resource Manager-Vorlagen.
Suchen Sie in der JSON-Datei nach der Eigenschaft
"endpoints": []
, die unter"routing"
geschachtelt ist.Ersetzen Sie die Zeile
"endpoints": []
durch den folgenden JSON-Code:"endpoints": { "serviceBusQueues": [], "serviceBusTopics": [], "eventHubs": [ { "endpointUri": "", "entityPath": "", "authenticationType": "identityBased", "identity": { "userAssignedIdentity": "" }, "name": "", "id": "", "subscriptionId": "", "resourceGroup": "" } ], "storageContainers": [], "cosmosDBSqlContainers": [] },
Aktualisieren Sie den JSON-Code mit den folgenden Informationen zu Ihrer Event Hubs-Ressource:
Eigenschaft Wert endpointUri (Wenn der Authentifizierungstyp identityBased
ist. Löschen Sie andernfalls diese Angabe.) Hostname Ihres Event Hubs-Namespace im Formatsb://<eventhubs_namespace_name>.servicebus.windows.net
entityPath (Wenn der Authentifizierungstyp identityBased
ist. Löschen Sie andernfalls diese Angabe.) Der Name Ihres Event Hubs.authenticationType identityBased
oderkeyBased
Microsoft empfiehlt die identitätsbasierte Authentifizierung. Dies ist die sicherere Option.identity (Wenn der Authentifizierungstyp identityBased
ist.) Sie können eine benutzerseitig zugewiesene verwaltete Identität oder eine systemseitig zugewiesene verwaltete Identität verwenden, wenn für Ihre IoT Hub-Instanz die systemseitig zugewiesene verwaltete Identität aktiviert ist.
Bei benutzerseitig zugewiesener Identität: Die externe ID der verwalteten Identität mit Zugriffsberechtigungen auf Ihren Event Hub im Format/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>
.
Bei systemseitig zugewiesener Identität: Übernehmen Sie für den Identitätsparameter die leere Liste. Beispiel:"identity": {},
connectionString (Wenn der Authentifizierungstyp keyBased
ist.) Die primäre Verbindungszeichenfolge von einer der Richtlinien für den gemeinsamen Zugriff Ihres Event Hubs im Format<connection_string>;EntityPath=<event_hub_name>.
. Sie können den Verbindungszeichenfolgenwert aus dem Azure-Portal abrufen und dann den Entitätspfad anfügen.Name Geben Sie einen eindeutigen Wert für den Namen des Endpunkts an. id Geben Sie eine leere Zeichenfolge an. Der Azure-Dienst stellt einen Wert bereit, wenn Sie den Endpunkt erstellen. subscriptionId Die ID des Abonnements, das Ihren Event Hub enthält. Ressourcengruppe Der Name der Ressourcengruppe, die den Event Hub enthält. Tipp
Für die Geheimnisverwaltung können Sie eine Parameterdatei erstellen oder Azure Key Vault verwenden, um sichere Parameterwerte während der Bereitstellung zu übergeben.
Hinzufügen einer Route zur Vorlage
Fügen Sie Ihrer Resource Manager-Vorlage eine Routendefinition hinzu. Weitere Informationen finden Sie unter „RouteProperties“ in Azure Resource Manager-Vorlagen.
Suchen Sie in der JSON-Datei nach der Eigenschaft
"routes": []
, die unter"routing"
geschachtelt ist, und fügen Sie eine neue Route hinzu.Achtung
Wenn Sie vorhandene Werte für
"routes"
durch die in den folgenden Codebeispielen verwendeten Routenwerte ersetzen, werden die vorhandenen Routen bei Ihrer Bereitstellung entfernt. Wenn Sie vorhandene Routen beibehalten möchten, fügen Sie das neue Routenobjekt der Liste"routes"
hinzu."routes": [ { "name": "", "source": "DeviceConnectionStateEvents", "condition": "true", "endpointNames": [ "" ], "isEnabled": true } ],
Aktualisieren Sie den JSON-Code mit den folgenden Informationen zu Ihrer Cosmos DB-Ressource:
Eigenschaft Wert Name Geben Sie einen eindeutigen Wert für den Namen der Route an. Quelle Wählen Sie die Quelle für Nachrichten oder Ereignisprotokolle aus, die an den Endpunkt weitergeleitet werden soll. Eine Liste der Quelloptionen finden Sie unter az iot hub route. condition Eine Abfrage zum Filtern der Quelldaten. Wenn keine Bedingung erforderlich ist, geben Sie true
an. Weitere Informationen finden Sie unter Abfragesyntax von IoT Hub-Nachrichtenrouting.endpointNames Der Name des vorhandenen Endpunkts, an den diese Daten weitergeleitet werden. Derzeit ist nur ein Endpunkt zulässig. isEnabled Legen Sie true
fest, um die Route zu aktivieren, oderfalse
, um die Route zu deaktivieren.Speichern Sie Ihre JSON-Datei.
Bereitstellen der Resource Manager-Vorlage
Nachdem Sie Ihren neuen Endpunkt und die Route zur Resource Manager-Vorlage hinzugefügt haben, können Sie nun die JSON-Datei wieder für Ihren IoT-Hub bereitstellen.
Lokale Bereitstellung
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "my\path\to\template.json"
Bereitstellung mit Azure Cloud Shell
Weil Azure Cloud Shell in einem Webbrowser ausgeführt wird, können Sie die Vorlagendatei hochladen, bevor Sie den Bereitstellungsbefehl ausführen. Nach dem Hochladen der Datei benötigen Sie nur den Dateinamen der Vorlage (statt des gesamten Dateipfads) zur Verwendung im Parameter template-file
.
az deployment group create \
--name my-iot-hub-template \
--resource-group my-resource-group \
--template-file "template.json"
Hinweis
Wenn bei der Bereitstellung ein Fehler auftritt, verwenden Sie den Schalter -verbose
, um Informationen zu den erstellten Ressourcen abzurufen. Verwenden Sie den Schalter -debug
, um weitere Informationen zum Debuggen zu erhalten.
Überprüfen der Bereitstellung
Zur Bestätigung, dass Ihre Vorlage in Azure erfolgreich bereitgestellt wurde, wechseln Sie im Azure-Portal zu Ihrer Ressourcengruppenressource. Wählen Sie im Ressourcenmenü unter Einstellungen die Option Bereitstellungen aus, um die Vorlage in einer Liste Ihrer Bereitstellungen anzuzeigen.
Wenn Sie Ihre neue Route im Azure-Portal anzeigen möchten, wechseln Sie zu Ihrer IoT Hub-Ressource. Vergewissern Sie sich im Bereich Nachrichtenrouting auf der Registerkarte Routen, dass Ihre Route dort aufgeführt ist.
Nächste Schritte
In diesem Artikel mit Anleitungen haben Sie erfahren, wie Sie eine Route und einen Endpunkt für Event Hubs, Service Bus-Warteschlangen und -Themen sowie für Azure Storage erstellen.
Weitere Informationen zum Nachrichtenrouting finden Sie im Tutorial: Senden von Gerätedaten an Azure Storage über IoT Hub-Nachrichtenrouting. In diesem Tutorial erstellen Sie eine Speicherroute und testen sie mit einem Gerät in Ihrem IoT-Hub.