Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start utworzysz symulowane urządzenie na maszynie z systemem Windows. Symulowane urządzenie jest skonfigurowane do używania zaświadczania certyfikatów X.509 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 . Przed kontynuowaniem upewnij się również, że wykonano kroki opisane w przewodniku Szybki start: konfigurowanie usługi IoT Hub Device Provisioning przy użyciu witryny Azure Portal .
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.
Prerequisites
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Wykonaj kroki opisane w przewodniku Szybki start: konfigurowanie usługi IoT Hub Device Provisioning przy użyciu witryny Azure Portal.
Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.
Zainstaluj program Visual Studio 2022 z włączonym obciążeniem "Programowanie aplikacji klasycznych z językiem C++". Obsługiwane są również programy Visual Studio 2015, Visual Studio 2017 i Visual Studio 19. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.
Zainstaluj najnowszy system kompilacji narzędzia CMake. Upewnij się, że zaznaczono opcję, która dodaje plik wykonywalny narzędzia CMake do ścieżki.
Important
Przed rozpoczęciem instalacji upewnij się, że na maszynie
CMakesą 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. Ponadto starsze wersje systemu kompilacji narzędzia CMake nie mogą wygenerować pliku rozwiązania używanego w tym artykule. Upewnij się, że używasz najnowszej wersji narzędzia CMake.
Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.
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
Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.
- Zainstaluj Node.js w wersji 4.0 lub nowszej na maszynie.
Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows.
- Środowisko Python w wersji 3.6 lub nowszej na maszynie.
Poniższe wymagania wstępne dotyczą środowiska deweloperskiego systemu Windows. W przypadku systemu Linux lub macOS zapoznaj się z odpowiednią sekcją w temacie Przygotowywanie środowiska projektowego w dokumentacji zestawu SDK.
Zainstaluj zestaw Java SE Development Kit 8 lub nowszy na maszynie.
Pobierz i zainstaluj pakiet Maven.
Zainstaluj najnowszą wersję usługi Git. Upewnij się, że usługa Git jest dodawana do zmiennych środowiskowych dostępnych w oknie polecenia. Zobacz do zainstalowania, która obejmuje
git, aplikację wiersza polecenia, której można użyć do interakcji z lokalnym repozytorium Git.Upewnij się, że na maszynie jest zainstalowany program OpenSSL . W systemie Windows instalacja narzędzia Git obejmuje instalację programu OpenSSL. Dostęp do protokołu OpenSSL można uzyskać z poziomu wiersza polecenia powłoki Git Bash. Aby sprawdzić, czy program OpenSSL jest zainstalowany, otwórz wiersz polecenia powłoki Git Bash i wprowadź polecenie
openssl version.Note
Jeśli znasz OpenSSL i jest on już zainstalowany na Twoim komputerze z systemem Windows, zalecamy użycie OpenSSL z poziomu wiersza poleceń Git Bash. Alternatywnie możesz pobrać kod źródłowy i skompilować bibliotekę OpenSSL. Aby dowiedzieć się więcej, zobacz stronę Pliki do pobrania openSSL. Możesz też pobrać wstępnie skompilowany plik OpenSSL od dostawcy innego niż Microsoft. Aby dowiedzieć się więcej, zobacz witrynę typu wiki openSSL. Firma Microsoft nie gwarantuje ważności pakietów pobranych od dostawców innych niż Microsoft. Jeśli zdecydujesz się skompilować lub pobrać plik OpenSSL, upewnij się, że plik binarny OpenSSL jest dostępny w ścieżce i że
OPENSSL_CNFzmienna środowiskowa jest ustawiona na ścieżkę pliku openssl.cnf .Otwórz zarówno wiersz polecenia systemu Windows, jak i wiersz polecenia powłoki Git Bash.
W krokach opisanych w tym przewodniku Szybki start założono, że używasz maszyny z systemem Windows i instalacji openSSL zainstalowanej w ramach usługi Git. Wiersz polecenia powłoki Git Bash służy do wydawania poleceń OpenSSL i wiersza polecenia systemu Windows dla wszystkich innych elementów. Jeśli używasz systemu Linux, możesz wydać wszystkie polecenia z powłoki Bash.
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.
Otwórz przeglądarkę internetową i przejdź do strony Wydanie zestawu AZURE IoT C SDK.
Wybierz kartę Tagi w górnej części strony.
Skopiuj nazwę tagu dla najnowszej wersji zestawu AZURE IoT C SDK.
W wierszu polecenia systemu Windows 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 --initWykonanie tej operacji może potrwać kilka minut.
Po zakończeniu operacji uruchom następujące polecenia z
azure-iot-sdk-ckatalogu:mkdir cmake cd cmakePrzykładowy kod używa certyfikatu X.509 w celu dostarczenia poświadczeń za pośrednictwem uwierzytelniania X.509. Uruchom następujące polecenie, aby skompilować wersję zestawu SDK specyficzną dla platformy programistycznej, która obejmuje klienta aprowizacji urządzeń. W katalogu jest generowane
cmakerozwiązanie programu Visual Studio dla symulowanego urządzenia.Podczas określania ścieżki używanej
-Dhsm_custom_libw poniższym poleceniu upewnij się, że używasz ścieżki bezwzględnej do biblioteki wcmakeutworzonym wcześniej katalogu. Wyświetlona ścieżka zakłada, że sklonujesz zestaw SDK języka C w katalogu głównym dysku C. Jeśli użyto innego katalogu, odpowiednio dostosuj ścieżkę.
Tip
Jeśli cmake nie znajdzie twojego kompilatora C++, mogą wystąpić błędy budowania podczas uruchamiania poprzedniego polecenia. Jeśli tak się stanie, spróbuj uruchomić polecenie w Wierszu polecenia dla programistów Visual Studio.
Po pomyślnym zakończeniu kompilacji ostatnie kilka wierszy wyjściowych będzie wyglądać podobnie do następujących danych wyjściowych:
-- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000. -- The C compiler identification is MSVC 19.32.31329.0 -- The CXX compiler identification is MSVC 19.32.31329.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/azure-iot-sdk-c/cmake
W wierszu polecenia systemu Windows sklonuj repozytorium GitHub zestawu AZURE IoT SDK dla platformy .NET przy użyciu następującego polecenia:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
W wierszu polecenia systemu Windows sklonuj repozytorium GitHub dla Azure IoT Node.js SDK używając następującego polecenia:
git clone https://github.com/Azure/azure-iot-sdk-node.git
W wierszu polecenia systemu Windows sklonuj repozytorium GitHub Azure IoT Python SDK za pomocą następującego polecenia:
git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
Note
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.
W wierszu polecenia systemu Windows sklonuj repozytorium Azure IoT SDKs for Java na GitHub przy użyciu następującego polecenia:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursivePrzejdź do katalogu głównego
azure-iot-sdk-javai skompiluj projekt, aby pobrać wszystkie potrzebne pakiety.cd azure-iot-sdk-java mvn install -DskipTests=true
Tworzenie certyfikatu urządzenia X.509 z podpisem własnym
W tej sekcji użyjesz biblioteki OpenSSL do utworzenia certyfikatu X.509 z podpisem własnym i klucza prywatnego. Ten certyfikat jest przekazywany do wystąpienia usługi aprowizacji i weryfikowany przez usługę.
Caution
Użyj certyfikatów utworzonych za pomocą biblioteki OpenSSL w tym przewodniku Szybki start tylko do testowania programowania. Nie używaj tych certyfikatów w środowisku produkcyjnym. Te certyfikaty wygasają po upływie 30 dni i mogą zawierać zakodowane na twardo hasła, takie jak 1234. Aby dowiedzieć się więcej na temat uzyskiwania certyfikatów odpowiednich do użycia w środowisku produkcyjnym, zobacz Jak uzyskać certyfikat X.509 urzędu certyfikacji w dokumentacji usługi Azure IoT Hub.
Wykonaj kroki opisane w tej sekcji w wierszu polecenia powłoki Git Bash.
W wierszu polecenia powłoki Git Bash przejdź do katalogu, w którym chcesz utworzyć certyfikaty.
Uruchom następujące polecenie:
winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"Important
Dodatkowy ukośnik podany dla nazwy podmiotu (
//CN=my-x509-device) jest wymagany tylko do ucieczki ciągu z usługą Git na platformach Windows.Po wyświetleniu monitu o wprowadzenie frazy przekazywania PEM użyj frazy
1234pass .Po wyświetleniu monitu Weryfikowanie — wprowadź frazę przekazywania PEM:, ponownie użyj frazy
1234przekazywania.Plik certyfikatu klucza publicznego (device-cert.pem) i plik klucza prywatnego (device-key.pem) powinien zostać wygenerowany w katalogu, w którym uruchomiono
opensslpolecenie.Plik certyfikatu ma nazwę pospolitą podmiotu (CN) ustawioną na .
my-x509-deviceW przypadku rejestracji opartych na architekturze X.509 identyfikator rejestracji jest ustawiony na nazwę pospolitą. Identyfikator rejestracji jest ciągiem bez uwzględniania wielkości liter znaków alfanumerycznych oraz znakami specjalnymi:'-', ,'.''_',':'. Ostatni znak musi być alfanumeryczny lub kreskowy ('-'). Nazwa pospolita musi być zgodna z tym formatem. Usługa DPS obsługuje identyfikatory rejestracji o długości do 128 znaków; jednak maksymalna długość nazwy pospolitej podmiotu w certyfikacie X.509 wynosi 64 znaki. W związku z tym identyfikator rejestracji jest ograniczony do 64 znaków w przypadku używania certyfikatów X.509.Plik certyfikatu jest zakodowany w formacie Base 64. Aby wyświetlić nazwę pospolitą podmiotu (CN) i inne właściwości pliku certyfikatu, wprowadź następujące polecenie:
Certificate: Data: Version: 3 (0x2) Serial Number: 77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = my-x509-device Validity Not Before: May 5 21:41:42 2022 GMT Not After : Jun 4 21:41:42 2022 GMT Subject: CN = my-x509-device Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7: e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29: ... 23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f: 9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85: 0e:cd:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Authority Key Identifier: keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption 82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a: ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1: ... cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c: ac:d2:49:b9:36:d2:b0:21
Przykładowy kod wymaga klucza prywatnego, który nie jest zaszyfrowany. Uruchom następujące polecenie, aby utworzyć niezaszyfrowany klucz prywatny:
Po wyświetleniu monitu o wprowadzenie frazy pass dla parametru device-key.pem:, użyj tej samej frazy dostępu, która została wcześniej użyta.
1234
Pozostaw otwarty monit powłoki Git Bash. Będzie on potrzebny w dalszej części tego przewodnika Szybki start.
Przykładowy kod w języku C# został skonfigurowany do używania certyfikatów X.509 przechowywanych w chronionym hasłem pliku PKCS#12 (certificate.pfx). Nadal potrzebny jest plik certyfikatu klucza publicznego sformatowanego przez PEM (device-cert.pem), który został właśnie utworzony w celu utworzenia wpisu rejestracji indywidualnej w dalszej części tego przewodnika Szybki start.
Aby wygenerować sformatowany plik PKCS12 oczekiwany przez przykład, wprowadź następujące polecenie:
Po wyświetleniu monitu o wprowadzenie frazy pass dla parametru device-key.pem:, użyj tej samej frazy dostępu, która została wcześniej użyta.
1234Po wyświetleniu monitu o wprowadzenie hasła eksportu: użyj hasła
1234.Po wyświetleniu monitu Zweryfikuj — wprowadź hasło eksportu: ponownie użyj hasła
1234.Plik certyfikatu sformatowanego PKCS12 (certificate.pfx) powinien zostać wygenerowany w katalogu, w którym uruchomiono
opensslpolecenie.Skopiuj plik certyfikatu sformatowanego PKCS12 do katalogu projektu dla przykładu aprowizacji urządzeń X.509. Podana ścieżka jest względna do lokalizacji, w której pobrano przykładowe repozytorium.
cp certificate.pfx ./azure-iot-sdk-csharp/provisioning/device/samples/"Getting Started"/X509Sample
Nie potrzebujesz monitu powłoki Git Bash o pozostałą część tego przewodnika Szybki start. Możesz jednak pozostawić go otwarty, aby sprawdzić certyfikat, jeśli masz problemy w kolejnych krokach.
Przykładowy kod wymaga klucza prywatnego, który nie jest zaszyfrowany. Uruchom następujące polecenie, aby utworzyć niezaszyfrowany klucz prywatny:
Po wyświetleniu monitu o wprowadzenie frazy pass dla parametru device-key.pem:, użyj tej samej frazy dostępu, która została wcześniej użyta.
1234Skopiuj certyfikat urządzenia i niezaszyfrowany klucz prywatny do katalogu projektu dla przykładu aprowizacji urządzeń X.509. Podana ścieżka jest względna do lokalizacji, w której pobrano zestaw SDK.
cp device-cert.pem ./azure-iot-sdk-node/provisioning/device/samples cp unencrypted-device-key.pem ./azure-iot-sdk-node/provisioning/device/samples
Nie potrzebujesz monitu powłoki Git Bash o pozostałą część tego przewodnika Szybki start. Możesz jednak pozostawić go otwarty, aby sprawdzić certyfikat, jeśli masz problemy w kolejnych krokach.
Skopiuj certyfikat urządzenia i klucz prywatny do katalogu projektu dla przykładu aprowizacji urządzeń X.509. Podana ścieżka jest względna do lokalizacji, w której pobrano zestaw SDK.
cp device-cert.pem ./azure-iot-sdk-python/samples/async-hub-scenarios cp device-key.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
Nie potrzebujesz monitu powłoki Git Bash o pozostałą część tego przewodnika Szybki start. Możesz jednak pozostawić go otwarty, aby sprawdzić certyfikat, jeśli masz problemy w kolejnych krokach.
Przykładowy kod Java wymaga klucza prywatnego, który nie jest zaszyfrowany. Uruchom następujące polecenie, aby utworzyć niezaszyfrowany klucz prywatny:
Po wyświetleniu monitu o wprowadzenie frazy pass dla parametru device-key.pem:, użyj tej samej frazy dostępu, która została wcześniej użyta.
1234
Pozostaw otwarty monit powłoki Git Bash. Będzie on potrzebny w dalszej części tego przewodnika Szybki start.
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.
Zaloguj się do witryny Azure Portal i przejdź do wystąpienia usługi Device Provisioning Service.
Wybierz pozycję Zarządzaj rejestracjami w sekcji Ustawienia w menu zasobów.
Wybierz kartę Rejestracje indywidualne, a następnie wybierz pozycję Dodaj rejestrację indywidualną.
Na stronie Rejestracja i aprowizowaniedodaj rejestrację podaj następujące informacje, aby skonfigurować szczegóły rejestracji:
Field Description Attestation Wybierz certyfikaty klienta X.509 jako mechanizm zaświadczania. Ustawienia certyfikatu X.509 Przekaż jeden lub dwa certyfikaty, które będą używane do weryfikowania urządzenia na potrzeby tej rejestracji. 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. Wybierz pozycję Dalej: centra IoT.
Na karcie Centra IoT na stronie Dodawanie rejestracji podaj następujące informacje, aby określić, które centra IoT mogą aprowizować urządzenia:
Field Description 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.Wybierz pozycję Dalej: Ustawienia urządzenia
Na karcie Ustawienia urządzenia na stronie Dodawanie rejestracji podaj następujące informacje, aby zdefiniować sposób konfigurowania nowo aprowizowania urządzeń:
Field Description 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.
Wybierz pozycję Dalej: Przeglądanie i tworzenie.
Na karcie Przeglądanie i tworzenie sprawdź wszystkie wartości, a następnie wybierz pozycję Utwórz.
Przygotowywanie i uruchamianie kodu aprowizacji urządzenia
W tej sekcji zaktualizujesz przykładowy kod, aby wysłać sekwencję rozruchową urządzenia do wystąpienia usługi Device Provisioning Service. Ta sekwencja rozruchowa powoduje rozpoznawanie i przypisywanie urządzenia do centrum IoT Hub połączonego z wystąpieniem usługi DPS.
W tej sekcji użyjesz monitu powłoki Git Bash i środowiska IDE programu Visual Studio.
Konfigurowanie kodu urządzenia aprowizacji
W tej sekcji zaktualizujesz przykładowy kod przy użyciu informacji o wystąpieniu usługi Device Provisioning Service.
W witrynie Azure Portal wybierz kartę Przegląd z menu zasobów dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
Uruchom program Visual Studio i otwórz nowy plik rozwiązania utworzony w
cmakekatalogu głównym repozytorium git azure-iot-sdk-c. Plik rozwiązania ma nazwęazure_iot_sdks.sln.W programie Eksplorator rozwiązań dla programu Visual Studio przejdź do > prov_dev_client_sample > i otwórz plik prov_dev_client_sample.c.
Znajdź stałą
id_scopei zastąp wartość wartością Zakres identyfikatorów skopiowaną w kroku 2.static const char* id_scope = "0ne00000A0A";Znajdź definicję funkcji
main()w tym samym pliku. Upewnij się, że zmienna jest ustawionahsm_typenaSECURE_DEVICE_TYPE_X509.SECURE_DEVICE_TYPE hsm_type; //hsm_type = SECURE_DEVICE_TYPE_TPM; hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;Zapisz zmiany.
Kliknij prawym przyciskiem myszy projekt prov_dev_client_sample i wybierz polecenie Ustaw jako projekt startowy.
Konfigurowanie niestandardowego kodu wycinkowego modułu HSM
Specyfika interakcji z rzeczywistym bezpiecznym magazynem opartym na sprzęcie różni się w zależności od sprzętu. W związku z tym certyfikat i klucz prywatny używany przez symulowane urządzenie w tym przewodniku Szybki start są zakodowane na stałe w niestandardowym kodzie wycinkowym sprzętowego modułu zabezpieczeń (HSM).
Aby zaktualizować niestandardowy kod wycinkowy modułu HSM w celu symulowania tożsamości urządzenia o identyfikatorze my-x509-device:
W Eksplorator rozwiązań dla programu Visual Studio przejdź do > custom_hsm_example > i otwórz plik custom_hsm_example.c.
Zaktualizuj wartość ciągu stałej
COMMON_NAMEciągu przy użyciu nazwy pospolitej użytej podczas generowania certyfikatu urządzenia .my-x509-devicestatic const char* const COMMON_NAME = "my-x509-device";Zaktualizuj wartość ciągu stałego
CERTIFICATEprzy użyciu wcześniej wygenerowanego certyfikatu urządzenia device-cert.pem.Składnia tekstu certyfikatu w przykładzie musi być zgodna z poniższym wzorcem bez dodatkowych spacji ani analizowania wykonanych przez program Visual Studio.
static const char* const CERTIFICATE = "-----BEGIN CERTIFICATE-----\n" "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" "-----END CERTIFICATE-----";Ręczne aktualizowanie tej wartości ciągu może być podatne na błąd. Aby wygenerować właściwą składnię, możesz skopiować i wkleić następujące polecenie w wierszu polecenia powłoki Git Bash i nacisnąć ENTER. To polecenie generuje składnię stałej
CERTIFICATEwartości ciągu i zapisuje ją w danych wyjściowych.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' device-cert.pemSkopiuj i wklej tekst wyjściowego certyfikatu dla stałej wartości.
Zaktualizuj wartość ciągu stałej
PRIVATE_KEYza pomocą niezaszyfrowanego klucza prywatnego certyfikatu urządzenia, unencrypted-device-key.pem.Składnia tekstu klucza prywatnego musi być zgodna z poniższym wzorcem bez dodatkowych spacji ani analizowania wykonywanego przez program Visual Studio.
static const char* const PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" "-----END RSA PRIVATE KEY-----";Ręczne aktualizowanie tej wartości ciągu może być podatne na błąd. Aby wygenerować właściwą składnię, możesz skopiować i wkleić następujące polecenie w wierszu polecenia powłoki Git Bash i nacisnąć ENTER. To polecenie generuje składnię stałej
PRIVATE_KEYwartości ciągu i zapisuje ją w danych wyjściowych.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' unencrypted-device-key.pemSkopiuj i wklej wyjściowy tekst klucza prywatnego dla wartości stałej.
Zapisz zmiany.
Kliknij prawym przyciskiem myszy projekt custom_hsm_-_example i wybierz pozycję Kompiluj.
Important
Przed utworzeniem pozostałej części rozwiązania w następnej sekcji należy skompilować projekt custom_hsm_example .
Uruchamianie aplikacji przykładowej
Z menu programu Visual Studio wybierz pozycję Debuguj>Uruchom bez debugowania, aby uruchomić rozwiązanie. Jeśli zostanie wyświetlony monit o ponowne skompilowanie projektu, wybierz pozycję Tak , aby ponownie skompilować projekt przed uruchomieniem.
Poniższe dane wyjściowe to przykład pomyślnego uruchomienia symulowanego urządzenia
my-x509-devicei nawiązania połączenia z usługą aprowizacji. Urządzenie jest przypisane do centrum IoT Hub i zarejestrowane:Provisioning API Version: 1.8.0 Registering Device Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: contoso-iot-hub-2.azure-devices.net, deviceId: my-x509-device Press enter key to exit:
W tej sekcji użyjesz wiersza polecenia systemu Windows.
W witrynie Azure Portal wybierz kartę Przegląd z menu zasobów dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
W wierszu polecenia systemu Windows przejdź do katalogu X509Sample. Ten katalog znajduje się w katalogu .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample w katalogu, w którym sklonowane przykłady na komputerze.
Wprowadź następujące polecenie, aby skompilować i uruchomić przykład aprowizacji urządzeń X.509 (zastąp
<IDScope>wartość zakresem identyfikatorów skopiowaną w poprzedniej sekcji. Plik certyfikatu domyślnie ma wartość ./certificate.pfx i wyświetla monit o hasło pfx.dotnet run -- -s <IDScope>Jeśli chcesz przekazać certyfikat i hasło jako parametr, możesz użyć następującego formatu.
Note
Podczas uruchamiania aplikacji można przekazać dodatkowe parametry w celu zmiany właściwości TransportType (-t) i GlobalDeviceEndpoint (-g).
dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234Urządzenie łączy się z usługą DPS i jest przypisane do centrum IoT. Następnie urządzenie wysyła komunikat do centrum IoT Hub.
Loading the certificate... Enter the PFX password for certificate.pfx: **** Found certificate: A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device; PrivateKey: True Using certificate A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device Initializing the device provisioning client... Initialized for registration Id my-x509-device. Registering with the device provisioning service... Registration status: Assigned. Device my-x509-device registered to MyExampleHub.azure-devices.net. Creating X509 authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
W tej sekcji użyjesz wiersza polecenia systemu Windows.
W witrynie Azure Portal wybierz kartę Przegląd z menu zasobów dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartość Zakres identyfikatora.
W wierszu polecenia systemu Windows przejdź do przykładowego katalogu i zainstaluj pakiety wymagane przez przykład. Wyświetlona ścieżka jest względna do lokalizacji, w której sklonowany zestaw SDK.
cd .\azure-iot-sdk-node\provisioning\device\samples npm installW przykładzie użyto pięciu zmiennych środowiskowych do uwierzytelniania i aprowizacji urządzenia IoT przy użyciu usługi DPS. Te zmienne środowiskowe to:
Nazwa zmiennej Description PROVISIONING_HOSTPunkt końcowy używany do nawiązywania połączenia z wystąpieniem usługi DPS. W tym przewodniku Szybki start użyj globalnego punktu końcowego, global.azure-devices-provisioning.net.PROVISIONING_IDSCOPEZakres identyfikatora wystąpienia usługi DPS. PROVISIONING_REGISTRATION_IDIdentyfikator rejestracji urządzenia. Musi być zgodna z nazwą pospolitą podmiotu w certyfikacie urządzenia. CERTIFICATE_FILEŚcieżka do pliku certyfikatu urządzenia. KEY_FILEŚcieżka do pliku klucza prywatnego urządzenia. Dodaj zmienne środowiskowe dla globalnego punktu końcowego urządzenia i zakresu identyfikatorów. Zastąp wartość
<id-scope>skopiowaną w kroku 2.set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<id-scope>Ustaw zmienną środowiskową dla identyfikatora rejestracji urządzenia. Identyfikator rejestracji urządzenia IoT musi być zgodny z nazwą pospolitą podmiotu w certyfikacie urządzenia. Jeśli wykonano kroki opisane w tym przewodniku Szybki start, aby wygenerować certyfikat testowy z podpisem własnym,
my-x509-devicejest zarówno nazwą podmiotu, jak i identyfikatorem rejestracji urządzenia.set PROVISIONING_REGISTRATION_ID=my-x509-deviceUstaw zmienne środowiskowe dla plików klucza prywatnego certyfikatu urządzenia i (niezaszyfrowanego).
set CERTIFICATE_FILE=.\device-cert.pem set KEY_FILE=.\unencrypted-device-key.pemUruchom przykład i sprawdź, czy urządzenie zostało pomyślnie zainicjowane.
node register_x509.jsPowinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
registration succeeded assigned hub=contoso-hub-2.azure-devices.net deviceId=my-x509-device Client connected send status: MessageEnqueued
W tej sekcji użyjesz wiersza polecenia systemu Windows.
W witrynie Azure Portal wybierz kartę Przegląd z menu zasobów dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartości Zakres identyfikatorów i Globalny punkt końcowy urządzenia.
W wierszu polecenia systemu Windows przejdź do katalogu przykładu provision_x509.py . Wyświetlona ścieżka jest względna do lokalizacji, w której sklonowany zestaw SDK.
cd ./azure-iot-sdk-python/samples/async-hub-scenariosW tym przykładzie użyto sześciu zmiennych środowiskowych do uwierzytelniania i aprowizacji urządzenia IoT przy użyciu usługi DPS. Te zmienne środowiskowe to:
Nazwa zmiennej Description PROVISIONING_HOSTGlobalny punkt końcowy używany do nawiązywania połączenia z wystąpieniem usługi DPS. PROVISIONING_IDSCOPEZakres identyfikatora wystąpienia usługi DPS. DPS_X509_REGISTRATION_IDIdentyfikator rejestracji urządzenia. Musi również być zgodna z nazwą podmiotu w certyfikacie urządzenia. X509_CERT_FILEŚcieżka do pliku certyfikatu urządzenia. X509_KEY_FILEŚcieżka do pliku klucza prywatnego certyfikatu urządzenia. PASS_PHRASEFraza dostępu użyta do zaszyfrowania certyfikatu i pliku klucza prywatnego ( 1234).Dodaj zmienne środowiskowe dla globalnego punktu końcowego urządzenia i zakresu identyfikatorów.
set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>Ustaw zmienną środowiskową dla identyfikatora rejestracji. Identyfikator rejestracji urządzenia IoT musi być zgodny z nazwą podmiotu w certyfikacie urządzenia. Jeśli wykonano kroki opisane w tym przewodniku Szybki start, aby wygenerować certyfikat testowy z podpisem własnym,
my-x509-devicejest zarówno nazwą podmiotu, jak i identyfikatorem rejestracji urządzenia.set DPS_X509_REGISTRATION_ID=my-x509-deviceUstaw zmienne środowiskowe dla pliku certyfikatu, pliku klucza prywatnego i przekaż frazę.
set X509_CERT_FILE=./device-cert.pem set X509_KEY_FILE=./device-key.pem set PASS_PHRASE=1234Przejrzyj kod provision_x509.py. Jeśli nie używasz języka Python w wersji 3.7 lub nowszej, wprowadź tutaj zmianę kodu, aby zastąpić
asyncio.run(main())i zapisać zmiany.Uruchom przykład. Przykład łączy się z usługą DPS, która aprowizuje urządzenie do centrum IoT. Po aprowizacji urządzenia przykład wysyła kilka komunikatów testowych do centrum IoT.
$ python azure-iot-sdk-python/samples/async-hub-scenarios/provision_x509.py RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2. Setting timer. The complete registration result is my-x509-device TestHub12345.azure-devices.net initialAssignment null Will send telemetry from the provisioned device sending message #4 sending message #7 sending message #2 sending message #8 sending message #5 sending message #9 sending message #1 sending message #6 sending message #10 sending message #3 done sending message #4 done sending message #7 done sending message #2 done sending message #8 done sending message #5 done sending message #9 done sending message #1 done sending message #6 done sending message #10 done sending message #3
W tej sekcji użyjesz zarówno wiersza polecenia systemu Windows, jak i wiersza polecenia powłoki Git Bash.
W witrynie Azure Portal wybierz kartę Przegląd z menu zasobów dla wystąpienia usługi Device Provisioning Service.
Skopiuj wartości Zakres identyfikatorów i Globalny punkt końcowy urządzenia.
W wierszu polecenia systemu Windows przejdź do folderu przykładowego projektu. Wyświetlona ścieżka jest względna do lokalizacji, w której sklonowany zestaw SDK
cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sampleWprowadź informacje o tożsamości usługi aprowizacji i X.509 w przykładowym kodzie. Te informacje są używane podczas aprowizacji na potrzeby zaświadczania symulowanego urządzenia przed rejestracją urządzenia.
Otwórz plik
.\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.javaw ulubionym edytorze.Zaktualizuj następujące wartości za pomocą skopiowanego wcześniej globalnego punktu końcowego zakresu identyfikatorów i usługi aprowizacji.
private static final String idScope = "[Your ID scope here]"; private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]"; private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;Zaktualizuj wartość ciągu stałego
leafPublicPemprzy użyciu wartości certyfikatu device-cert.pem.Składnia tekstu certyfikatu musi być zgodna z poniższym wzorcem bez dodatkowych spacji ani znaków.
private static final String leafPublicPem = "-----BEGIN CERTIFICATE-----\n" + "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" + ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" + "-----END CERTIFICATE-----";Ręczne aktualizowanie tej wartości ciągu może być podatne na błąd. Aby wygenerować właściwą składnię, możesz skopiować i wkleić następujące polecenie w wierszu polecenia powłoki Git Bash i nacisnąć ENTER. To polecenie generuje składnię stałej
leafPublicPemwartości ciągu i zapisuje ją w danych wyjściowych.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' device-cert.pemSkopiuj i wklej tekst wyjściowego certyfikatu dla stałej wartości.
Zaktualizuj wartość ciągu stałej
leafPrivateKeyza pomocą niezaszyfrowanego klucza prywatnego certyfikatu urządzenia, unencrypted-device-key.pem.Składnia tekstu klucza prywatnego musi być zgodna z poniższym wzorcem bez dodatkowych spacji ani znaków.
private static final String leafPrivateKey = "-----BEGIN PRIVATE KEY-----\n" + "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" + ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" + "-----END PRIVATE KEY-----";Ręczne aktualizowanie tej wartości ciągu może być podatne na błąd. Aby wygenerować właściwą składnię, możesz skopiować i wkleić następujące polecenie w wierszu polecenia powłoki Git Bash i nacisnąć ENTER. To polecenie generuje składnię stałej
leafPrivateKeywartości ciągu i zapisuje ją w danych wyjściowych.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' unencrypted-device-key.pemSkopiuj i wklej wyjściowy tekst klucza prywatnego dla wartości stałej.
Zapisz zmiany.
Skompiluj przykład, a następnie przejdź do
targetfolderu .mvn clean install cd targetDane wyjściowe kompilacji .jar pliku w
targetfolderze o następującym formacie pliku:provisioning-x509-sample-{version}-with-deps.jarna przykład :provisioning-x509-sample-1.8.1-with-deps.jar. Wykonaj plik .jar. Może być konieczne zastąpienie wersji w poniższym poleceniu.java -jar ./provisioning-x509-sample-1.8.1-with-deps.jarPrzykład łączy się z usługą DPS, która aprowizuje urządzenie do centrum IoT. Po aprowizacji urządzenia przykład wysyła kilka komunikatów testowych do centrum IoT.
Starting... Beginning setup. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. 2022-05-11 09:42:05,025 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.0 2022-05-11 09:42:05,027 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread... Waiting for Provisioning Service to register 2022-05-11 09:42:05,030 INFO (global.azure-devices-provisioning.net-6255a8ba-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service... 2022-05-11 09:42:05,252 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message 2022-05-11 09:42:05,286 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using x509 certificates 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device... 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING Waiting for Provisioning Service to register 2022-05-11 09:42:15,685 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully IotHUb Uri : MyExampleHub.azure-devices.net Device ID : java-device-01 2022-05-11 09:42:25,057 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,080 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,087 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.0.3 2022-05-11 09:42:25,129 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection... 2022-05-11 09:42:25,150 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet... 2022-05-11 09:42:25,982 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged 2022-05-11 09:42:25,983 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# was acknowledged 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully 2022-05-11 09:42:26,070 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads 2022-05-11 09:42:26,073 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details 2022-05-11 09:42:26,074 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully 2022-05-11 09:42:26,075 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully Sending message from device to IoT Hub... 2022-05-11 09:42:26,077 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) Press any key to exit... 2022-05-11 09:42:26,079 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,422 DEBUG (MQTT Call: java-device-01) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,425 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK Message sent!
Potwierdzanie rejestracji aprowizacji urządzeń
Aby sprawdzić, w którym centrum IoT Zostało zainicjowane twoje urządzenie, sprawdź szczegóły rejestracji utworzonej wcześniej rejestracji:
W portalu Azure przejdź do wystąpienia usługi Device Provisioning Service.
W menu zasobów w obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.
Wybierz pozycję Rejestracje indywidualne. Na liście powinien zostać wyświetlony wpis rejestracji X.509 utworzony wcześniej my-x509-device.
Wybierz wpis rejestracji. Centrum IoT, do którego przypisano urządzenie, a jego identyfikator urządzenia jest wyświetlany w obszarze Stan rejestracji.
Aby sprawdzić urządzenie w centrum IoT Hub:
W witrynie Azure Portal przejdź do centrum IoT Hub, do którego przypisano Urządzenie.
W menu zasobów w obszarze Zarządzanie urządzeniami wybierz pozycję Urządzenia.
Jeśli urządzenie zostało pomyślnie aprowizowane, jego identyfikator urządzenia, my-x509-device, powinien zostać wyświetlony na liście z ustawionym stanem ustawionym jako włączone. Jeśli urządzenie nie jest widoczne, wybierz pozycję Odśwież.
Important
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
Zamknij okno danych wyjściowych przykładu klienta urządzenia na swojej maszynie.
W menu portalu w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.
Wybierz wystąpienie usługi Device Provisioning Service.
W menu usługi w obszarze Ustawienia wybierz pozycję Zarządzaj rejestracjami.
W okienku roboczym wybierz kartę Rejestracje indywidualne .
Zaznacz pole wyboru obok identyfikatora rejestracji urządzenia zarejestrowanego w tym przewodniku Szybki start.
W górnej części okienka wybierz pozycję Usuń.
Usuwanie rejestracji urządzenia z usługi IoT Hub
W menu portalu w witrynie Azure Portal wybierz pozycję Wszystkie zasoby.
Wybierz centrum IoT Hub.
W menu usługi w obszarze Zarządzanie urządzeniami wybierz pozycję Urządzenia.
W oknie roboczym zaznacz pole wyboru obok identyfikatora urządzenia, które zarejestrowałeś w tym przewodniku szybkiego startu.
W górnej części okienka wybierz pozycję Usuń.
Dalsze 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.