Szybki start: aprowizuj symulowane urządzenie klucza symetrycznego

W tym przewodniku Szybki start utworzysz symulowane urządzenie na maszynie z systemem Windows. Symulowane urządzenie jest skonfigurowane do używania mechanizmu zaświadczania klucza symetrycznego na potrzeby uwierzytelniania. Po skonfigurowaniu urządzenia aprowizujesz je w centrum IoT Przy użyciu usługi Azure IoT Hub Device Provisioning.

Jeśli nie znasz procesu aprowizacji, zapoznaj się z omówieniem aprowizacji .

Ten przewodnik Szybki start przedstawia rozwiązanie dla stacji roboczej z systemem Windows. Można jednak również wykonać procedury w systemie Linux. Aby zapoznać się z przykładem systemu Linux, zobacz Samouczek: aprowizowanie opóźnienia geograficznego.

Wymagania wstępne

  • Zainstaluj zestaw .NET SDK 6.0 lub nowszy na maszynie z systemem Windows. Aby sprawdzić wersję, możesz użyć następującego polecenia.

    dotnet --info
    
  • Zainstaluj środowisko Python w wersji 3.7 lub nowszej zainstalowanej na komputerze z systemem Windows. Możesz sprawdzić swoją wersję języka Python, uruchamiając polecenie python --version.

przygotowywanie środowiska programistycznego

W tej sekcji przygotujesz środowisko programistyczne używane do kompilowania zestawu SDK języka C usługi Azure IoT. Przykładowy kod próbuje aprowizować urządzenie podczas sekwencji rozruchu urządzenia.

  1. Pobierz najnowszy system kompilacji narzędzia CMake.

    Ważne

    Przed rozpoczęciem CMake instalacji upewnij się, że na maszynie są zainstalowane wymagania wstępne programu Visual Studio (Program Visual Studio i pakiet roboczy Programowanie aplikacji klasycznych z językiem C++). Gdy wymagania wstępne zostaną spełnione, a pobrane pliki zweryfikowane, zainstaluj system kompilacji CMake. Należy również pamiętać, że starsze wersje systemu kompilacji CMake nie mogą wygenerować pliku rozwiązania używanego w tym artykule. Upewnij się, że używasz najnowszej wersji narzędzia CMake.

  2. Otwórz przeglądarkę internetową i przejdź do strony Wydanie zestawu AZURE IoT C SDK.

  3. Wybierz kartę Tagi w górnej części strony.

  4. Skopiuj nazwę tagu dla najnowszej wersji zestawu AZURE IoT C SDK.

  5. Otwórz wiersz polecenia lub powłokę Git Bash. Uruchom następujące polecenia, aby sklonować najnowszą wersję zestawu AZURE IoT Device SDK for C GitHub. Zastąp <release-tag> ciąg tagiem skopiowanymi w poprzednim kroku, na przykład: lts_01_2023.

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

    Wykonanie tej operacji może potrwać kilka minut.

  6. Po zakończeniu operacji uruchom następujące polecenia z azure-iot-sdk-c katalogu:

    mkdir cmake
    cd cmake
    
  7. Przykładowy kod używa klucza symetrycznego do zapewnienia zaświadczania. Uruchom następujące polecenie, aby skompilować wersję zestawu SDK specyficzną dla platformy klienta programowania, która obejmuje klienta aprowizacji urządzeń:

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

    Napiwek

    Jeśli cmake nie znajdziesz kompilatora języka C++, podczas uruchamiania powyższego polecenia mogą wystąpić błędy kompilacji. W takim przypadku spróbuj uruchomić polecenie w wierszu polecenia programu Visual Studio.

  8. Po pomyślnym zakończeniu kompilacji ostatnie kilka wierszy wyjściowych będzie wyglądać podobnie do następujących danych wyjściowych:

    $ 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. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium GitHub zestawu AZURE IoT SDK dla języka C# przy użyciu następującego polecenia:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj zestaw SDK usługi Azure IoT dla repozytorium Node.js GitHub przy użyciu następującego polecenia:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium GitHub zestawu Azure IoT SDK dla języka Python przy użyciu następującego polecenia:

    git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
    

    Uwaga

    Przykłady używane w tym samouczku znajdują się w gałęzi w wersji 2 repozytorium azure-iot-sdk-python. Wersja 3 zestawu SDK języka Python jest dostępna do użycia w wersji beta.

  1. Otwórz środowisko wiersza polecenia git CMD lub Git Bash.

  2. Sklonuj repozytorium GitHub zestawu SDK usługi Azure IoT dla języka Java przy użyciu następującego polecenia:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Przejdź do katalogu głównego azure-iot-sdk-java i skompiluj projekt, aby pobrać wszystkie potrzebne pakiety. Wykonanie tego kroku może potrwać kilka minut.

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

Tworzenie rejestracji urządzenia

Usługa Azure IoT Device Provisioning obsługuje dwa typy rejestracji:

  • Grupy rejestracji: służą do rejestrowania wielu pokrewnych urządzeń.
  • Rejestracje indywidualne: służy do rejestrowania pojedynczego urządzenia.

W tym artykule przedstawiono rejestrację indywidualną dla pojedynczego urządzenia do aprowizowania w centrum IoT.

  1. Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.

  2. Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia menu nawigacji.

  3. Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.

    Screenshot that shows the add individual enrollment option.

  4. Na stronie Rejestracja i aprowizowaniedodaj rejestrację podaj następujące informacje, aby skonfigurować szczegóły rejestracji:

    Pole opis
    Zaświadczanie Wybierz pozycję Klucz symetryczny jako mechanizm zaświadczania.
    Ustawienia klucza symetrycznego Zaznacz pole Automatycznie Generuj klucze symetryczne, jeśli chcesz użyć losowo wygenerowanych kluczy. Usuń zaznaczenie tego pola, jeśli chcesz podać własne klucze.
    Identyfikator rejestracji Podaj unikatowy identyfikator rejestracji urządzenia.
    Stan aprowizacji Zaznacz pole Włącz tę rejestrację, jeśli ta rejestracja ma być dostępna do aprowizacji urządzenia. Usuń zaznaczenie tego pola, jeśli chcesz, aby rejestracja została wyłączona. To ustawienie można zmienić później.
    Zasady ponownej aprowizacji Wybierz zasady ponownej aprowizacji, które odzwierciedlają sposób obsługi urządzeń, które żądają ponownej aprowizacji przez usługę DPS. Aby uzyskać więcej informacji, zobacz Zasady ponownej aprowizacji.
  5. Wybierz pozycję Dalej: centra IoT.

  6. Na karcie Centra IoT na stronie Dodawanie rejestracji podaj następujące informacje, aby określić, które centra IoT mogą aprowizować urządzenia:

    Pole opis
    Docelowe centra IoT Wybierz co najmniej jedno połączone centra IoT lub dodaj nowy link do centrum IoT. Aby dowiedzieć się więcej na temat łączenia centrów IoT z wystąpieniem usługi DPS, zobacz Jak połączyć centra IoT i zarządzać nimi.
    Zasady alokacji Jeśli wybrano więcej niż jedno połączone centrum IoT, wybierz sposób przypisywania urządzeń do różnych centrów. Aby dowiedzieć się więcej na temat zasad alokacji, zobacz Jak używać zasad alokacji.

    Jeśli wybrano tylko jedno połączone centrum IoT, zalecamy użycie zasad dystrybucji równomiernie ważonej.
  7. Wybierz pozycję Dalej: Ustawienia urządzenia

  8. Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowania urządzeń:

    Pole opis
    Identyfikator urządzenia Podaj identyfikator urządzenia, który zostanie przypisany do aprowizowanego urządzenia w usłudze IoT Hub. Jeśli nie podasz identyfikatora urządzenia, zostanie użyty identyfikator rejestracji.
    IoT Edge Sprawdź włączanie usługi IoT Edge na aprowidowanych urządzeniach , jeśli aprowizowane urządzenie uruchomi usługę Azure IoT Edge. Usuń zaznaczenie tego pola, jeśli ta rejestracja dotyczy urządzenia z obsługą usługi IoT Edge.
    Tagi urządzeń Użyj tego pola tekstowego, aby podać tagi, które mają być stosowane do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.
    Żądane właściwości Użyj tego pola tekstowego, aby podać żądane właściwości, które chcesz zastosować do bliźniaczej reprezentacji urządzenia aprowizowanego urządzenia.

    Aby uzyskać więcej informacji, zobacz Opis bliźniaczej reprezentacji urządzenia w usłudze IoT Hub oraz sposoby jej używania.

  9. Wybierz pozycję Dalej: Przeglądanie i tworzenie.

  10. Na karcie Przeglądanie i tworzenie sprawdź wszystkie wartości, a następnie wybierz pozycję Utwórz.

Po utworzeniu rejestracji indywidualnej zostanie wygenerowany klucz podstawowy i klucz pomocniczy oraz dodany do wpisu rejestracji. W dalszej części tego przewodnika Szybki start użyjesz klucza podstawowego w przykładzie urządzenia.

  1. Aby wyświetlić symulowaną rejestrację urządzenia z kluczem symetrycznym, wybierz kartę Indywidualne rejestracje .

  2. Wybierz identyfikator rejestracji urządzenia z listy rejestracji indywidualnych.

  3. Skopiuj wartość wygenerowanego klucza podstawowego.

    Screenshot showing the enrollment details, highlighting the Copy button for the primary key of the device enrollment

Przygotowywanie i uruchamianie kodu aprowizacji urządzenia

W tej sekcji zaktualizujesz przykładowy kod urządzenia, aby wysłać sekwencję rozruchową urządzenia do wystąpienia usługi Device Provisioning Service. Ta sekwencja rozruchowa powoduje, że urządzenie zostanie rozpoznane, uwierzytelnione i przypisane do centrum IoT Połączone z wystąpieniem usługi Device Provisioning Service.

Przykładowy kod aprowizacji wykonuje następujące zadania w następującej kolejności:

  1. Uwierzytelnia urządzenie przy użyciu zasobu Device Provisioning przy użyciu następujących trzech parametrów:

    • Zakres identyfikatora usługi Device Provisioning Service
    • Identyfikator rejestracji dla rejestracji urządzenia.
    • Podstawowy klucz symetryczny rejestracji urządzenia.
  2. Przypisuje urządzenie do centrum IoT Hub, które jest już połączone z wystąpieniem usługi Device Provisioning Service.

Aby zaktualizować i uruchomić przykład aprowizacji przy użyciu informacji o urządzeniu:

  1. W menu głównym usługi Device Provisioning Wybierz pozycję Przegląd.

  2. Skopiuj wartość Zakres identyfikatora.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. W programie Visual Studio otwórz plik rozwiązania azure_iot_sdks.sln, który został wygenerowany przez uruchomienie narzędzia CMake. Plik rozwiązania powinien znajdować się w następującej lokalizacji:

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

    Napiwek

    Jeśli plik nie został wygenerowany w katalogu cmake, upewnij się, że użyto najnowszej wersji systemu kompilacji narzędzia CMake.

  4. W oknie Eksplorator rozwiązań programu Visual Studio przejdź do folderu Provision_Samples. Rozwiń przykładowy projekt o nazwie prov_dev_client_sample. Rozwiń węzeł Pliki źródłowe i otwórz plik prov_dev_client_sample.c.

  5. Znajdź stałą id_scope i zastąp wartość wartością Zakres identyfikatora skopiowaną w kroku 2.

    static const char* id_scope = "0ne00002193";
    
  6. Znajdź definicję funkcji main() w tym samym pliku. Upewnij się, że zmienna jest ustawiona hsm_type na SECURE_DEVICE_TYPE_SYMMETRIC_KEY , jak pokazano w poniższym przykładzie:

    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. Znajdź wywołanie metody prov_dev_set_symmetric_key_info() w pliku prov_dev_client_sample.c , które zostało skomentowane.

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

    Usuń komentarz z wywołania funkcji i zastąp wartości symboli zastępczych (w tym nawiasy kątowe) identyfikatorem rejestracji urządzenia i skopiowaną wcześniej wartością klucza podstawowego.

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

  9. Kliknij prawym przyciskiem myszy projekt prov_dev_client_sample i wybierz polecenie Ustaw jako projekt startowy.

  10. Z menu programu Visual Studio wybierz pozycję Debuguj>Uruchom bez debugowania, aby uruchomić rozwiązanie. W wierszu polecenia ponownego kompilowania projektu wybierz pozycję Tak , aby ponownie skompilować projekt przed uruchomieniem.

    Następujące dane wyjściowe to przykład pomyślnego nawiązania połączenia urządzenia z wystąpieniem usługi aprowizacji, które ma zostać przypisane do centrum IoT:

    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:
    

Przykładowy kod aprowizacji wykonuje następujące zadania:

  1. Uwierzytelnia urządzenie przy użyciu zasobu Device Provisioning przy użyciu następujących trzech parametrów:

    • Zakres identyfikatora usługi Device Provisioning Service
    • Identyfikator rejestracji dla rejestracji urządzenia.
    • Podstawowy klucz symetryczny rejestracji urządzenia.
  2. Przypisuje urządzenie do centrum IoT Hub, które jest już połączone z wystąpieniem usługi Device Provisioning Service.

  3. Wysyła komunikat telemetrii testowej do centrum IoT.

Aby zaktualizować i uruchomić przykład aprowizacji przy użyciu informacji o urządzeniu:

  1. W menu głównym usługi Device Provisioning Wybierz pozycję Przegląd.

  2. Skopiuj wartość Zakres identyfikatora.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. Otwórz wiersz polecenia i przejdź do pliku SymmetricKeySample w sklonowanym repozytorium zestawu SDK:

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. W folderze SymmetricKeySample otwórz Parameters.cs w edytorze tekstów. Ten plik zawiera dostępne parametry dla przykładu. Podczas uruchamiania przykładu używane są tylko pierwsze trzy wymagane parametry. Przejrzyj kod w tym pliku. Nie są potrzebne żadne zmiany.

    Parametr Wymagania opis
    --i lub --IdScope Prawda Zakres identyfikatora wystąpienia usługi DPS
    --r lub --RegistrationId Prawda Identyfikator rejestracji jest ciągiem bez uwzględniania wielkości liter (do 128 znaków) znaków alfanumerycznych oraz znakami specjalnymi: '-', , '.''_', ':'. Ostatni znak musi być alfanumeryczny lub kreskowy ('-').
    --p lub --PrimaryKey Prawda Klucz podstawowy rejestracji indywidualnej lub pochodnego klucza urządzenia rejestracji grupy. Zobacz computeDerivedSymmetricKeySample, aby dowiedzieć się, jak wygenerować klucz pochodny.
    --g lub --GlobalDeviceEndpoint Fałsz Globalny punkt końcowy dla urządzeń do nawiązania połączenia. Wartości domyślne global.azure-devices-provisioning.net
    --t lub --TransportType Fałsz Transport używany do komunikowania się z wystąpieniem aprowizacji urządzeń. Wartość domyślna to Mqtt. Możliwe wartości obejmują Mqtt, , Mqtt_WebSocket_Only, AmqpAmqp_Tcp_onlyMqtt_Tcp_OnlyAmqp_WebSocket_Only, i .Http1
  5. W folderze SymmetricKeySample otwórz ProvisioningDeviceClientSample.cs w edytorze tekstów. Ten plik pokazuje, jak klasa SecurityProviderSymmetricKey jest używana wraz z klasą ProvisioningDeviceClient w celu aprowizacji symulowanego urządzenia klucza symetrycznego. Przejrzyj kod w tym pliku. Nie są potrzebne żadne zmiany.

  6. Skompiluj i uruchom przykładowy kod przy użyciu następującego polecenia:

    • Zastąp <id-scope> wartość zakresem identyfikatora skopiowaną w kroku 2.
    • Zastąp <registration-id> element identyfikatorem rejestracji podanym dla rejestracji urządzenia.
    • Zastąp wartość <primarykey> kluczem podstawowym skopiowaną z rejestracji urządzenia.
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Powinny zostać wyświetlone dane wyjściowe podobne do poniższych. Ciąg "TestMessage" jest wysyłany do centrum jako komunikat testowy.

    D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r 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.
    

Przykładowy kod aprowizacji wykonuje następujące zadania w następującej kolejności:

  1. Uwierzytelnia urządzenie przy użyciu zasobu Device Provisioning przy użyciu następujących czterech parametrów:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Przypisuje urządzenie do centrum IoT Hub, które jest już połączone z wystąpieniem usługi Device Provisioning Service.

  3. Wysyła komunikat telemetrii testowej do centrum IoT.

Aby zaktualizować i uruchomić przykład aprowizacji przy użyciu informacji o urządzeniu:

  1. W menu głównym usługi Device Provisioning Wybierz pozycję Przegląd.

  2. Skopiuj wartości Zakres identyfikatorów i Globalny punkt końcowy urządzenia.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Otwórz wiersz polecenia do wykonywania Node.js poleceń i przejdź do następującego katalogu:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. W folderze provisioning/device/samples otwórz register_symkey.js i przejrzyj kod. Zwróć uwagę, że przykładowy kod ustawia niestandardowy ładunek:

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

    Ten kod może być komentowany, ponieważ nie jest on potrzebny w tym przewodniku Szybki start. Niestandardowy ładunek będzie wymagany, aby użyć niestandardowej funkcji alokacji w celu przypisania urządzenia do centrum IoT. Aby uzyskać więcej informacji, zobacz Samouczek: używanie niestandardowych zasad alokacji.

    Metoda provisioningClient.register() próbuje rejestracji urządzenia.

    Nie są potrzebne żadne dalsze zmiany.

  5. W wierszu polecenia uruchom następujące polecenia, aby ustawić zmienne środowiskowe używane przez przykład:

    • Zastąp element <provisioning-global-endpoint> globalnym punktem końcowym urządzenia skopiowany w kroku 2.
    • Zastąp <id-scope> wartość zakresem identyfikatora skopiowaną w kroku 2.
    • Zastąp <registration-id> element identyfikatorem rejestracji podanym dla rejestracji urządzenia.
    • Zastąp wartość <primarykey> kluczem podstawowym skopiowaną z rejestracji urządzenia.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Skompiluj i uruchom przykładowy kod przy użyciu następujących poleceń:

     npm install
    
    node register_symkey.js
    
  7. Powinny zostać wyświetlone dane wyjściowe podobne do poniższych. Ciąg "Hello World" jest wysyłany do centrum jako komunikat testowy.

    D:\azure-iot-samples-csharp\provisioning\device\samples>node register_symkey.js
    registration succeeded
    assigned hub=ExampleIoTHub.azure-devices.net
    deviceId=nodejs-device-01
    payload=undefined
    Client connected
    send status: MessageEnqueued
    

Przykładowy kod aprowizacji wykonuje następujące zadania w następującej kolejności:

  1. Uwierzytelnia urządzenie przy użyciu zasobu Device Provisioning przy użyciu następujących czterech parametrów:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Przypisuje urządzenie do centrum IoT Hub, które jest już połączone z wystąpieniem usługi Device Provisioning Service.

  3. Wysyła komunikat telemetrii testowej do centrum IoT.

Aby zaktualizować i uruchomić przykład aprowizacji przy użyciu informacji o urządzeniu:

  1. W menu głównym usługi Device Provisioning Wybierz pozycję Przegląd.

  2. Skopiuj wartości Zakres identyfikatorów i Globalny punkt końcowy urządzenia.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Otwórz wiersz polecenia i przejdź do katalogu, w którym znajduje się przykładowy plik provision_symmetric_key.py.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. W wierszu polecenia uruchom następujące polecenia, aby ustawić zmienne środowiskowe używane przez przykład:

    • Zastąp element <provisioning-global-endpoint> globalnym punktem końcowym urządzenia skopiowany w kroku 2.
    • Zastąp <id-scope> wartość zakresem identyfikatora skopiowaną w kroku 2.
    • Zastąp <registration-id> element identyfikatorem rejestracji podanym dla rejestracji urządzenia.
    • Zastąp wartość <primarykey> kluczem podstawowym skopiowaną z rejestracji urządzenia.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Zainstaluj bibliotekę azure-iot-device , uruchamiając następujące polecenie.

    pip install azure-iot-device
    
  6. Uruchom przykładowy kod języka Python w provision_symmetric_key.py.

    python provision_symmetric_key.py
    
  7. Powinny zostać wyświetlone dane wyjściowe podobne do poniższych. Niektóre przykładowe komunikaty telemetryczne prędkości wiatru są również wysyłane do koncentratora jako test.

    D:\azure-iot-sdk-python\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
    

Przykładowy kod aprowizacji wykonuje następujące zadania w następującej kolejności:

  1. Uwierzytelnia urządzenie przy użyciu zasobu Device Provisioning przy użyciu następujących czterech parametrów:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Przypisuje urządzenie do centrum IoT Hub, które jest już połączone z wystąpieniem usługi Device Provisioning Service.

  3. Wysyła komunikat telemetrii testowej do centrum IoT.

Aby zaktualizować i uruchomić przykład aprowizacji przy użyciu informacji o urządzeniu:

  1. W menu głównym usługi Device Provisioning Wybierz pozycję Przegląd.

  2. Skopiuj wartości Zakres identyfikatorów i Globalny punkt końcowy urządzenia. Te wartości są odpowiednio parametrami SCOPE_ID i .GLOBAL_ENDPOINT

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Otwórz przykładowy kod urządzenia Java do edycji. Pełna ścieżka do przykładowego kodu urządzenia to:

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

  4. Ustaw wartość następujących zmiennych dla usługi DPS i rejestracji urządzeń:

    • Zastąp <id-scope> wartość zakresem identyfikatora skopiowaną w kroku 2.
    • Zastąp element <provisioning-global-endpoint> globalnym punktem końcowym urządzenia skopiowany w kroku 2.
    • Zastąp <registration-id> element identyfikatorem rejestracji podanym dla rejestracji urządzenia.
    • Zastąp wartość <primarykey> kluczem podstawowym skopiowaną z rejestracji urządzenia.
    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. Otwórz wiersz polecenia do kompilowania. Przejdź do folderu przykładowego projektu aprowizacji w repozytorium zestawu JAVA SDK.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Skompiluj przykład.

    mvn clean install
    
  7. Przejdź do target folderu i wykonaj utworzony .jar plik. W poleceniu java zastąp {version} symbol zastępczy wersją w .jar nazwie pliku na maszynie.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Powinny zostać wyświetlone dane wyjściowe podobne do poniższych.

    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
    

Potwierdzanie rejestracji aprowizacji urządzeń

  1. Przejdź do portalu Azure Portal.

  2. W menu po lewej stronie lub na stronie portalu wybierz pozycję Wszystkie zasoby.

  3. Wybierz centrum IoT Hub, do którego przypisano urządzenie.

  4. W menu Zarządzanie urządzeniami wybierz pozycję Urządzenia.

  5. Jeśli urządzenie zostało pomyślnie zainicjowane, identyfikator urządzenia powinien zostać wyświetlony na liście z ustawionym stanem włączonym. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież w górnej części strony.

    Screenshot showing that the device is registered with the IoT hub and enabled for the C example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the C# example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Node.js example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Python example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Java example.

Uwaga

Jeśli zmienisz wartość w polu Początkowy stan bliźniaczej reprezentacji urządzenia z domyślnej na inną we wpisie rejestracji dla Twojego urządzenia, może to spowodować pobranie z centrum żądanego stanu reprezentacji bliźniaczej i odpowiednie do niego działanie. Aby uzyskać więcej informacji, zobacz Opis bliźniaczej reprezentacji urządzenia w usłudze IoT Hub oraz sposoby jej używania.

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę i eksplorujesz przykład klienta urządzenia, nie usuwaj zasobów utworzonych w tym przewodniku Szybki start. Jeśli nie planujesz kontynuować, wykonaj następujące kroki, aby usunąć wszystkie zasoby utworzone w tym przewodniku Szybki start.

Usuwanie rejestracji urządzenia

  1. Zamknij okno danych wyjściowych przykładu klienta urządzenia na swojej maszynie.

  2. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.

  3. Wybierz usługę Device Provisioning Service.

  4. W menu Ustawienia wybierz pozycję Zarządzaj rejestracjami.

  5. Wybierz kartę Rejestracje indywidualne.

  6. Zaznacz pole wyboru obok identyfikatora rejestracji urządzenia zarejestrowanego w tym przewodniku Szybki start.

  7. W górnej części strony wybierz pozycję Usuń.

Usuwanie rejestracji urządzenia z usługi IoT Hub

  1. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.

  2. Wybierz centrum IoT Hub.

  3. W menu Eksploratory wybierz pozycję Urządzenia IoT.

  4. Zaznacz pole wyboru obok identyfikatora urządzenia zarejestrowanego w tym przewodniku Szybki start.

  5. W górnej części strony wybierz pozycję Usuń.

Następne kroki

W tym przewodniku Szybki start zainicjowano aprowizację pojedynczego urządzenia w centrum IoT przy użyciu rejestracji indywidualnej. Następnie dowiedz się, jak aprowizować wiele urządzeń w wielu centrach.