Schnellstart: Bereitstellen eines simulierten Geräts mit symmetrischem Schlüssel

In dieser Schnellstartanleitung erstellen Sie ein simuliertes Gerät auf Ihrem Windows-Computer. Das simulierte Gerät wird für die Verwendung des Mechanismus Nachweis des symmetrischen Schlüssels für die Authentifizierung konfiguriert. Nachdem Sie Ihr Gerät konfiguriert haben, stellen Sie es mithilfe des Azure IoT Hub Device Provisioning Service für Ihren IoT-Hub bereit.

Wenn Sie mit dem Prozess der Bereitstellung noch nicht vertraut sind, sollten Sie zunächst die Übersicht zur Bereitstellung lesen.

In dieser Schnellstartanleitung wird die Vorgehensweise anhand einer Projektmappe für eine Windows-Arbeitsstation veranschaulicht. Sie können die Schritte aber auch unter Linux ausführen. Ein Beispiel für Linux finden Sie unter Bereitstellen für Mehrinstanzenfähigkeit.

Voraussetzungen

  • Installieren Sie das .NET SDK 6.0 oder höher auf Ihrem Windows-Computer. Sie können den folgenden Befehl ausführen, um Ihre Version zu überprüfen:

    dotnet --info
    
  • Installieren Sie Python 3.7 oder höher auf Ihrem Windows-Computer. Durch Ausführen von python --version können Sie überprüfen, welche Python-Version verwendet wird.
  • Installieren Sie die aktuelle Version von Git. Stellen Sie sicher, dass Git den Umgebungsvariablen hinzugefügt wurde, auf die das Befehlsfenster Zugriff hat. Unter den Git-Clienttools von Software Freedom Conservancy finden Sie die neueste Version der zu installierenden git-Tools. Hierzu zählt auch die Befehlszeilen-App Git Bash, über die Sie mit Ihrem lokalen Git-Repository interagieren können.

Vorbereiten Ihrer Entwicklungsumgebung

In diesem Abschnitt bereiten Sie eine Entwicklungsumgebung vor, die zum Erstellen des Azure IoT C SDK verwendet wird. Mit dem Beispielcode wird versucht, das Gerät während der Startsequenz des Geräts bereitzustellen.

  1. Laden Sie das neueste CMake-Buildsystem herunter.

    Wichtig

    Vergewissern Sie sich vor Beginn der Installation von CMake, dass die erforderlichen Visual Studio-Komponenten (Visual Studio und die Workload „Desktopentwicklung mit C++“) auf dem Computer installiert sind. Sobald die Voraussetzungen erfüllt sind und der Download überprüft wurde, installieren Sie das CMake-Buildsystem. Beachten Sie auch, dass ältere Versionen des CMake-Buildsystems die in diesem Artikel verwendete Projektmappendatei nicht generieren können. Stellen Sie sicher, dass Sie die neueste Version von CMake verwenden.

  2. Öffnen Sie einen Webbrowser, und wechseln Sie zur Releaseseite für das Azure IoT C SDK.

  3. Wählen Sie oben auf der Seite die Registerkarte Tags aus.

  4. Kopieren Sie den Tagnamen für das aktuelle Release des Azure IoT C SDK.

  5. Öffnen Sie eine Eingabeaufforderung oder die Git Bash-Shell. Führen Sie die folgenden Befehle aus, um die neueste Version des Azure IoT C SDK im GitHub-Repository zu klonen (<release-tag> durch das Tag ersetzen, das Sie im vorherigen Schritt kopiert haben).

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    Dieser Vorgang kann mehrere Minuten dauern.

  6. Führen Sie nach Abschluss des Vorgangs die folgenden Befehle aus dem Verzeichnis azure-iot-sdk-c aus:

    mkdir cmake
    cd cmake
    
  7. Im Codebeispiel wird ein symmetrischer Schlüssel verwendet, um den erforderlichen Nachweis zu erbringen. Erstellen Sie mit dem folgenden Befehl eine spezifische SDK-Version für Ihre Entwicklungsclientplattform, die den Client für die Gerätebereitstellung enthält.

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    Tipp

    Falls cmake Ihren C++-Compiler nicht findet, treten beim Ausführen des obigen Befehls unter Umständen Buildfehler auf. Führen Sie den Befehl in diesem Fall an der Visual Studio-Eingabeaufforderung aus.

  8. Nach der erfolgreichen Erstellung ähneln die letzten Ausgabezeilen der folgenden Ausgabe:

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
    -- The C compiler identification is MSVC 19.29.30040.0
    -- The CXX compiler identification is MSVC 19.29.30040.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    
  1. Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.

  2. Klonen Sie mithilfe des folgenden Befehls das GitHub-Repository mit den Azure IoT-Beispielen für C#:

    git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
    
  1. Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.

  2. Klonen Sie mithilfe des folgenden Befehls das GitHub-Repository mit dem Azure IoT SDK für Node.js:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.

  2. Klonen Sie mit dem folgenden Befehl das GitHub-Repository mit dem Azure IoT SDK für Python:

    git clone https://github.com/Azure/azure-iot-sdk-python.git --recursive
    
  1. Öffnen Sie eine Git CMD- oder Git Bash-Befehlszeilenumgebung.

  2. Klonen Sie mit dem folgenden Befehl das GitHub-Repository mit dem Azure IoT SDK für Java:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Navigieren Sie zum Stammverzeichnis azure-iot-sdk-java, und erstellen Sie das Projekt, um alle erforderlichen Pakete herunterzuladen. Dieser Schritt kann mehrere Minuten dauern.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

Erstellen einer Geräteregistrierung

In Azure IoT Device Provisioning Service werden zwei Registrierungsarten unterstützt:

In diesem Artikel wird veranschaulicht, wie eine individuelle Registrierung für ein einzelnes Gerät, das mit einem IoT-Hub bereitgestellt werden soll, durchgeführt wird.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie im Menü auf der linken Seite oder auf der Portalseite die Option Alle Ressourcen aus.

  3. Wählen Sie Ihre Device Provisioning Service-Instanz aus.

  4. Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.

  5. Wählen Sie oben auf der Seite die Option + Individuelle Registrierung hinzufügen aus.

  6. Geben Sie auf der Seite Registrierung hinzufügen die folgenden Informationen ein.

    • Mechanismus: Wählen Sie Symmetrischer Schlüssel als Mechanismus für den Nachweis der Identität aus.

    • Schlüssel automatisch generieren: Aktivieren Sie dieses Kontrollkästchen.

    • Registrierungs-ID: Geben Sie eine Registrierungs-ID ein, um die Registrierung zu identifizieren. Bei der Registrierungs-ID handelt es sich um eine Zeichenfolge (bis zu 128 Zeichen lang) alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus diese Sonderzeichen: '-', '.', '_', ':'. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-') sein. Beispiel: symm-key-device-007.

    • IoT Hub-Geräte-ID: Geben Sie einen Gerätebezeichner ein. Die Geräte-ID muss den Anforderungen der Geräte-ID-Zeichenfolge entsprechen.

    Enter device enrollment information.

    Enter C# device enrollment information.

    Enter Node.js device enrollment information.

    Enter Python device enrollment information.

    Enter Java device enrollment information.

  7. Wählen Sie Speichern aus. Es werden ein Primärschlüssel und ein Sekundärschlüssel generiert und dem Registrierungseintrag hinzugefügt. Anschließend wird für Sie wieder die Seite Registrierungen verwalten angezeigt.

  8. Wählen Sie die Registerkarte Individuelle Registrierungen aus, um Ihre Registrierungen für das simulierte Gerät mit symmetrischem Schlüssel anzuzeigen.

  9. Wählen Sie Ihr Gerät (symm-key-device-007) aus.

  10. Kopieren Sie den Wert des generierten Primärschlüssels.

    Copy the primary key of the device enrollment

Vorbereiten und Ausführen des Gerätebereitstellungscodes

In diesem Abschnitt aktualisieren Sie den Beispielcode für das Gerät, um die Startsequenz des Geräts an Ihre Device Provisioning Service-Instanz zu senden. Diese Startsequenz bewirkt, dass das Gerät erkannt, authentifiziert und einem IoT-Hub zugewiesen wird, der mit der Device Provisioning Service-Instanz verknüpft ist.

Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:

  1. Authentifiziert Ihr Gerät mit den folgenden drei Parametern bei Ihrer Device Provisioning-Ressource:

    • ID-Bereich Ihrer Device Provisioning Service-Instanz
    • Registrierungs-ID für Ihre Geräteregistrierung
    • Primärer symmetrischer Schlüssel für Ihre Geräteregistrierung
  2. Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.

Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:

  1. Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.

  2. Kopieren Sie den Wert von ID-Bereich.

    Extract Device Provisioning Service endpoint information

  3. Öffnen Sie in Visual Studio die Projektmappendatei azure_iot_sdks.sln, die zuvor durch das Ausführen von CMake generiert wurde. Die Projektmappendatei befindet sich am folgenden Speicherort:

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    Tipp

    Wurde die Datei nicht in Ihrem CMake-Verzeichnis erstellt, vergewissern Sie sich, dass Sie eine aktuelle Version des CMake-Buildsystems verwendet haben.

  4. Navigieren Sie im Visual Studio-Fenster Projektmappen-Explorer zum Ordner Provision_Samples. Erweitern Sie das Beispielprojekt prov_dev_client_sample. Erweitern Sie Quelldateien, und öffnen Sie prov_dev_client_sample.c.

  5. Suchen Sie die Konstante id_scope, und ersetzen Sie den Wert durch den Wert von ID-Bereich, den Sie in Schritt 2 kopiert haben.

    static const char* id_scope = "0ne00002193";
    
  6. Suchen Sie die Definition für die Funktion main() in der gleichen Datei. Stellen Sie sicher, dass die Variable hsm_type wie unten dargestellt auf SECURE_DEVICE_TYPE_SYMMETRIC_KEY festgelegt ist:

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. Suchen Sie in prov_dev_client_sample.c den auskommentierten Aufruf von prov_dev_set_symmetric_key_info().

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    Heben Sie die Auskommentierung für den Funktionsaufruf auf, und ersetzen Sie die Platzhalterwerte (einschließlich der spitzen Klammern) durch die oben kopierte Registrierungs-ID und den Primärschlüsselwert.

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("symm-key-device-007", "your primary key here");
    
  8. Speichern Sie die Datei .

  9. Klicken Sie mit der rechten Maustaste auf das Projekt prov_dev_client_sample, und wählen Sie Als Startprojekt festlegen aus.

  10. Wählen Sie im Visual Studio-Menü die Option Debuggen>Starten ohne Debugging aus, um die Projektmappe auszuführen. Wählen Sie in der Aufforderung zum erneuten Erstellen des Projekts Ja aus, um das Projekt vor der Ausführung neu zu erstellen.

    Die folgende Beispielausgabe zeigt die erfolgreiche Verbindungsherstellung des Geräts mit der Provisioning Service-Instanz, um einem IoT-Hub zugewiesen zu werden:

    Provisioning API Version: 1.2.8
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: device-007
    Press enter key to exit:
    

Mit dem Beispielcode für die Bereitstellung werden die folgenden Aufgaben durchgeführt:

  1. Authentifiziert Ihr Gerät mit den folgenden drei Parametern bei Ihrer Device Provisioning-Ressource:

    • ID-Bereich Ihrer Device Provisioning Service-Instanz
    • Registrierungs-ID für Ihre Geräteregistrierung
    • Primärer symmetrischer Schlüssel für Ihre Geräteregistrierung
  2. Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.

  3. Sendet eine Testtelemetrienachricht an den IoT-Hub.

Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:

  1. Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.

  2. Kopieren Sie den Wert von ID-Bereich.

    Extract Device Provisioning Service endpoint information

  3. Öffnen Sie eine Eingabeaufforderung, und navigieren Sie im geklonten Beispielrepository zu SymmetricKeySample:

    cd azure-iot-samples-csharp\provisioning\Samples\device\SymmetricKeySample
    
  4. Öffnen Sie im Ordner SymmetricKeySample die Datei Parameters.cs in einem Text-Editor. Diese Datei enthält die vom Beispiel unterstützten Parameter. Beim Ausführen des Beispiels werden nur die ersten drei erforderlichen Parameter in diesem Artikel verwendet. Sehen Sie sich den Code in dieser Datei an. Es sind keine Änderungen erforderlich.

    Parameter Erforderlich BESCHREIBUNG
    --s oder --IdScope Richtig Der ID-Bereich der DPS-Instanz
    --i oder --Id Richtig Die Registrierungs-ID bei Verwendung der individuellen Registrierung oder die gewünschte Geräte-ID bei Verwendung der Gruppenregistrierung Bei der Registrierungs-ID handelt es sich um eine Zeichenfolge (bis zu 128 Zeichen lang) alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus diese Sonderzeichen: '-', '.', '_', ':'. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-') sein. Die Geräte-ID muss den Anforderungen der Geräte-ID-Zeichenfolge entsprechen.
    --p oder --PrimaryKey Richtig Der Primärschlüssel der individuellen Registrierung oder Gruppenregistrierung.
    --e oder --EnrollmentType Falsch Der Typ der Registrierung: Individual oder Group. Der Standardwert lautet Individual.
    --g oder --GlobalDeviceEndpoint Falsch Der globale Endpunkt, mit dem Geräte eine Verbindung herstellen sollen. Der Standardwert lautet global.azure-devices-provisioning.net.
    --t oder --TransportType Falsch Der Transporttyp, der für die Kommunikation mit der Gerätebereitstellungsinstanz verwendet werden soll. Wird standardmäßig auf Mqtt festgelegt. Mögliche Werte: Mqtt, Mqtt_WebSocket_Only, Mqtt_Tcp_Only, Amqp, Amqp_WebSocket_Only, Amqp_Tcp_only und Http1
  5. Öffnen Sie im Ordner SymmetricKeySample die Datei ProvisioningDeviceClientSample.cs in einem Text-Editor. Diese Datei verdeutlicht, wie die SecurityProviderSymmetricKey-Klasse zusammen mit der ProvisioningDeviceClient-Klasse verwendet wird, um Ihr simuliertes Gerät mit symmetrischem Schlüssel bereitzustellen. Sehen Sie sich den Code in dieser Datei an. Es sind keine Änderungen erforderlich.

  6. Erstellen Sie den Code, und führen Sie ihn mithilfe des folgenden Befehls aus:

    • Ersetzen Sie <id-scope> durch den ID-Bereich, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <registration-id> durch die Registrierungs-ID, die Sie aus der Geräteregistrierung kopiert haben.
    • Ersetzen Sie <primarykey> durch den Primärschlüssel, den Sie aus der Geräteregistrierung kopiert haben.
    dotnet run --s <id-scope> --i <registration-id> --p <primarykey>
    
  7. Nun sollte in etwa die folgende Ausgabe angezeigt werden. Die Zeichenfolge „TestMessage“ wird als Testnachricht an den Hub gesendet.

    D:\azure-iot-samples-csharp\provisioning\Samples\device\SymmetricKeySample>dotnet run --s 0ne00000A0A --i symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:

  1. Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.

  3. Sendet eine Testtelemetrienachricht an den IoT-Hub.

Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:

  1. Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.

  2. Kopieren Sie die Werte für ID-Bereich und Globaler Geräteendpunkt.

    Extract Device Provisioning Service endpoint information

  3. Öffnen Sie eine Eingabeaufforderung für die Ausführung von Node.js-Befehlen, und navigieren Sie zum folgenden Verzeichnis:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. Öffnen Sie im Ordner provisioning/device/samples die Datei register_symkey.js, und überprüfen Sie den Code. Beachten Sie, dass mit dem Beispielcode benutzerdefinierte Nutzdaten festgelegt werden:

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    Sie können diesen Code auskommentieren, da er für diese Schnellstartanleitung nicht benötigt wird. Benutzerdefinierte Nutzdaten sind erforderlich, falls Sie eine benutzerdefinierte Zuordnungsfunktion für die Zuweisung Ihres Geräts zu einer IoT Hub-Instanz verwenden möchten. Weitere Informationen finden Sie im Tutorial: Verwenden benutzerdefinierter Zuordnungsrichtlinien.

    Mit der Methode provisioningClient.register() wird die Registrierung Ihres Geräts versucht.

    Es sind keine weiteren Änderungen erforderlich.

  5. Führen Sie an der Eingabeaufforderung die folgenden Befehle aus, um die vom Beispiel verwendeten Umgebungsvariablen festzulegen:

    • Ersetzen Sie <provisioning-global-endpoint> durch den globalen Geräteendpunkt, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <id-scope> durch den ID-Bereich, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <registration-id> durch die Registrierungs-ID, die Sie aus der Geräteregistrierung kopiert haben.
    • Ersetzen Sie <primarykey> durch den Primärschlüssel, den Sie aus der Geräteregistrierung kopiert haben.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Erstellen Sie den Beispielcode, und führen Sie ihn aus, indem Sie die folgenden Befehle verwenden:

     npm install
    
    node register_symkey.js
    
  7. Nun sollte in etwa die folgende Ausgabe angezeigt werden. Die Zeichenfolge „Hallo Welt“ wird als Testnachricht an den Hub gesendet.

    D:\azure-iot-samples-csharp\provisioning\Samples\device\SymmetricKeySample>dotnet run --s 0ne00000A0A --i symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:

  1. Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.

  3. Sendet eine Testtelemetrienachricht an den IoT-Hub.

Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:

  1. Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.

  2. Kopieren Sie die Werte für ID-Bereich und Globaler Geräteendpunkt.

    Extract Device Provisioning Service endpoint information

  3. Öffnen Sie eine Eingabeaufforderung, und navigieren Sie zum Verzeichnis mit der Beispieldatei provision_symmetric_key.py.

    cd azure-iot-sdk-python\azure-iot-device\samples\async-hub-scenarios
    
  4. Führen Sie an der Eingabeaufforderung die folgenden Befehle aus, um die vom Beispiel verwendeten Umgebungsvariablen festzulegen:

    • Ersetzen Sie <provisioning-global-endpoint> durch den globalen Geräteendpunkt, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <id-scope> durch den ID-Bereich, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <registration-id> durch die Registrierungs-ID, die Sie aus der Geräteregistrierung kopiert haben.
    • Ersetzen Sie <primarykey> durch den Primärschlüssel, den Sie aus der Geräteregistrierung kopiert haben.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Installieren Sie die Bibliothek azure-iot-device, indem Sie den folgenden Befehl ausführen.

    pip install azure-iot-device
    
  6. Führen Sie den Python-Beispielcode in der Datei provision_symmetric_key.py aus.

    python provision_symmetric_key.py
    
  7. Nun sollte in etwa die folgende Ausgabe angezeigt werden. Zu Testzwecken werden auch einige Beispielnachrichten mit Telemetriedaten zur Windgeschwindigkeit an den Hub gesendet.

    D:\azure-iot-sdk-python\azure-iot-device\samples\async-hub-scenarios>python provision_symmetric_key.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    python-device-008
    docs-test-iot-hub.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #8
    sending message #9
    sending message #3
    sending message #10
    sending message #4
    sending message #2
    sending message #6
    sending message #7
    sending message #1
    sending message #5
    done sending message #8
    done sending message #9
    done sending message #3
    done sending message #10
    done sending message #4
    done sending message #2
    done sending message #6
    done sending message #7
    done sending message #1
    done sending message #5
    

Mit dem Beispielcode für die Bereitstellung werden nacheinander die folgenden Aufgaben durchgeführt:

  1. Authentifiziert Ihr Gerät mit den folgenden vier Parametern bei Ihrer Device Provisioning-Ressource:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Weist das Gerät dem IoT-Hub zu, der bereits mit Ihrer Device Provisioning Service-Instanz verknüpft ist.

  3. Sendet eine Testtelemetrienachricht an den IoT-Hub.

Gehen Sie wie folgt vor, um das Bereitstellungsbeispiel mit Ihren Geräteinformationen zu aktualisieren und auszuführen:

  1. Wählen Sie im Hauptmenü Ihrer Device Provisioning Service-Instanz die Option Übersicht aus.

  2. Kopieren Sie die Werte für ID-Bereich und Globaler Geräteendpunkt. Dies sind Ihre Werte für SCOPE_ID und GLOBAL_ENDPOINT.

    Extract Device Provisioning Service endpoint information

  3. Öffnen Sie den Beispielcode für das Java-Gerät zur Bearbeitung. Der vollständige Pfad zum Beispielcode für das Gerät lautet:

    azure-iot-sdk-java/provisioning/provisioning-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. Legen Sie für Ihre DPS- und Geräteregistrierung den Wert der folgenden Variablen fest:

    • Ersetzen Sie <id-scope> durch den ID-Bereich, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <provisioning-global-endpoint> durch den globalen Geräteendpunkt, den Sie in Schritt 2 kopiert haben.
    • Ersetzen Sie <registration-id> durch die Registrierungs-ID, die Sie aus der Geräteregistrierung kopiert haben.
    • Ersetzen Sie <primarykey> durch den Primärschlüssel, den Sie aus der Geräteregistrierung kopiert haben.
    private static final String SCOPE_ID = "<id-scope>";
    private static final String GLOBAL_ENDPOINT = "<provisioning-global-endpoint>";
    private static final String SYMMETRIC_KEY = "<primarykey>";
    private static final String REGISTRATION_ID = "<registration-id>";
    
  5. Öffnen Sie eine Eingabeaufforderung für den Buildvorgang. Navigieren Sie zum Projektordner mit dem Bereitstellungsbeispiel im Java-SDK-Repository.

    cd azure-iot-sdk-java\provisioning\provisioning-samples\provisioning-symmetrickey-individual-sample
    
  6. Erstellen Sie das Beispiel.

    mvn clean install
    
  7. Navigieren Sie zum Ordner target, und führen Sie die erstellte .jar-Datei aus. Ersetzen Sie im Befehl java den Platzhalter {version} durch die Version im Dateinamen .jar auf Ihrem Computer.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Nun sollte in etwa die folgende Ausgabe angezeigt werden.

    Starting...
    Beginning setup.
    Initialized a ProvisioningDeviceClient instance using SDK version 1.11.0
    Starting provisioning thread...
    Waiting for Provisioning Service to register
    Opening the connection to device provisioning service...
    Connection to device provisioning service opened successfully, sending initial device registration message
    Authenticating with device provisioning service using symmetric key
    Waiting for device provisioning service to provision this device...
    Current provisioning status: ASSIGNING
    Device provisioning service assigned the device successfully
    IotHUb Uri : <Your IoT hub name>.azure-devices.net
    Device ID : java-device-007
    Sending message from device to IoT Hub...
    Press any key to exit...
    Message received! Response status: OK_EMPTY
    

Bestätigen der Registrierung der Gerätebereitstellung

  1. Öffnen Sie das Azure-Portal.

  2. Wählen Sie im Menü auf der linken Seite oder auf der Portalseite die Option Alle Ressourcen aus.

  3. Wählen Sie den IoT-Hub aus, dem Ihr Gerät zugewiesen wurde.

  4. Wählen Sie im Menü Explorer die Option IoT-Geräte aus.

  5. Wenn Ihr Gerät erfolgreich bereitgestellt wurde, sollte die Geräte-ID in der Liste mit dem StatusAktiviert angezeigt werden. Wählen Sie oben auf der Seite Aktualisieren aus, falls Ihr Gerät nicht angezeigt wird.

    Device is registered with the IoT hub

    CSharp device is registered with the IoT hub

    Node.js device is registered with the IoT hub

    Python device is registered with the IoT hub

    Java device is registered with the IoT hub

Hinweis

Wenn Sie den anfänglichen Gerätezwillingsstatus im Registrierungseintrag für Ihr Gerät gegenüber dem Standardwert geändert haben, kann der gewünschte Zwillingsstatus vom Hub abgerufen werden, und es können entsprechende Aktionen durchgeführt werden. Weitere Informationen finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub.

Bereinigen von Ressourcen

Wenn Sie das Geräteclientbeispiel weiter verwenden und erkunden möchten, sollten Sie die in dieser Schnellstartanleitung erstellten Ressourcen nicht bereinigen. Falls Sie nicht fortfahren möchten, führen Sie die folgenden Schritte aus, um alle Ressourcen zu löschen, die im Rahmen dieser Schnellstartanleitung erstellt wurden.

Löschen der Geräteregistrierung

  1. Schließen Sie auf Ihrem Computer das Ausgabefenster des Geräteclientbeispiels.

  2. Wählen Sie im Azure-Portal im linken Menü die Option Alle Ressourcen aus.

  3. Wählen Sie Ihre Device Provisioning Service-Instanz aus.

  4. Wählen Sie im Menü Einstellungen die Option Registrierungen verwalten aus.

  5. Wählen Sie die Registerkarte Individuelle Registrierungen aus.

  6. Aktivieren Sie das Kontrollkästchen neben der REGISTRIERUNGS-ID des Geräts, das Sie in dieser Schnellstartanleitung registriert haben.

  7. Wählen Sie oben auf der Seite Löschen aus.

Löschen Ihrer Geräteregistrierung aus IoT Hub

  1. Wählen Sie im Azure-Portal im linken Menü die Option Alle Ressourcen aus.

  2. Wählen Sie Ihren IoT Hub aus.

  3. Wählen Sie im Menü Explorer die Option IoT-Geräte aus.

  4. Aktivieren Sie das Kontrollkästchen neben der GERÄTE-ID des Geräts, das Sie in dieser Schnellstartanleitung registriert haben.

  5. Wählen Sie oben auf der Seite Löschen aus.

Nächste Schritte

Bereitstellen eines Geräts mit X.509-Zertifikat: