Freigeben über


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.

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.

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub. Wählen Sie im Ressourcenmenü unter Automatisierung die Option Vorlage exportieren aus.

    Screenshot der Option „Vorlage exportieren“ im Menü einer IoT Hub-Ressource

  2. Führen Sie unter Vorlage exportieren auf der Registerkarte Vorlage die folgenden Schritte aus:

    1. Zeigen Sie die JSON-Datei an, die für Ihren IoT-Hub generiert wird.

    2. Deaktivieren Sie das Kontrollkästchen Parameter einschließen.

    3. Wählen Sie Herunterladen aus, um eine lokale Kopie der JSON-Datei herunterzuladen.

    Screenshot der Schaltfläche „Herunterladen“ im Bereich „Vorlage exportieren“

    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.

Fügen Sie Ihrer Resource Manager-Vorlage einen Event Hubs-Endpunkt hinzu. Weitere Informationen finden Sie unter „RoutingEventHubProperties“ in Azure Resource Manager-Vorlagen.

  1. Suchen Sie in der JSON-Datei nach der Eigenschaft "endpoints": [], die unter "routing" geschachtelt ist.

  2. 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": []
    },
    
  3. 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 Format sb://<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 oder keyBased 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.

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.

  1. 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
        }
    ],
    
  2. 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, oder false, um die Route zu deaktivieren.
  3. 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.

Screenshot der Schaltfläche in Azure Cloud Shell zum Hochladen einer Datei

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.

Screenshot einer Liste der Bereitstellungen für eine Ressource im Azure-Portal, mit einer hervorgehobenen Testvorlage

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.