Przygotowywanie
W tym miejscu omówimy ogólne cele projektu i sposób przygotowania zasobów do ćwiczeń.
Omówienie projektu
W tym module zaczniesz od utworzenia zasobów platformy Azure wymaganych do ukończenia tego modułu, takich jak wystąpienie usługi Device Provisioning Service (DPS) i centrum IoT. Następnie należy wygenerować certyfikat głównego urzędu certyfikacji X.509 przy użyciu biblioteki OpenSSL w usłudze Azure Cloud Shell i użyć certyfikatu głównego do skonfigurowania rejestracji grupy w usłudze DPS. Następnie należy użyć certyfikatu głównego do wygenerowania dwóch certyfikatów urządzeń, które są używane w ramach symulowanego kodu urządzenia do aprowizowania urządzeń w centrum IoT. W kodzie urządzenia implementujesz dostęp do właściwości bliźniaczej reprezentacji urządzenia używanych do wykonywania początkowej konfiguracji urządzenia. Następnie przetestujesz symulowane urządzenie. Aby ukończyć ten moduł, anuluj aprowizację całej rejestracji grupy.
Ustawienia
W ramach tego modułu tworzone są następujące zasoby:
- Centrum Azure IoT Hub
- Wystąpienie usługi Azure IoT Hub Device Provisioning
- Dwa symulowane urządzenia w języku C#
Zasoby w chmurze
Aby ukończyć ten projekt z przewodnikiem, potrzebujesz centrum IoT i wystąpienia usługi Device Provisioning Service połączonego ze sobą. Tworzenie tych wystąpień usługi może potrwać kilka minut.
Zacznij od kliknięcia przycisku Aktywuj piaskownicę. Piaskownica automatycznie tworzy grupę zasobów platformy Azure wyświetlaną na tej stronie internetowej. Aby utworzyć więcej zasobów dla tego projektu, wykonaj następujące kroki. Nazwa grupy zasobów jest zastępowana automatycznie, gdzie jest używana w krokach kodu.
Uwaga
Limit czasu piaskownicy usługi Azure Cloud Shell zostanie przekroczony po upływie 20 minut braku aktywności. Piaskownica będzie nadal dostępna, a usługa Cloud Shell może zostać ponownie aktywowana, ale zmienne wiersza polecenia i środowiskowe zostaną utracone. Wystąpienia usługi IoT Hub i Device Provisioning Service są funkcjonalne i dostępne. Upewnij się, że skopiujesz te wartości zgodnie z instrukcjami na końcu tej strony, aby nadal można było odwoływać się do nich i w razie potrzeby wprowadzić wartości w kolejnych poleceniach usługi Cloud Shell.
Zainstaluj rozszerzenie Usługi Azure IoT dla interfejsu wiersza polecenia platformy Azure.
az extension add --name azure-iot
Utwórz zmienną o nazwie sufiks z losową liczbą używaną dla nazw zasobów, które muszą być globalnie unikatowe.
let suffix=$RANDOM*$RANDOM echo $suffix
Utwórz centrum IoT Hub w nazwie grupy zasobów utworzonej przez piaskownicę platformy Azure.
az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Utwórz wystąpienie usługi DPS w grupie zasobów utworzonej przez piaskownicę platformy Azure.
az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
Pobierz centrum parametry połączenia z centrum IoT Hub, które udostępniasz wystąpieniu usługi DPS, aby połączyć te dwa zasoby.
hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv) echo $hubConnectionString
Dodaj centrum IoT jako połączone centrum do wystąpienia usługi DPS. Łączenie centrum IoT oznacza, że wystąpienie usługi DPS może aprowizować urządzenia z tym centrum IoT.
az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
Po zakończeniu wdrażania otwórz narzędzie edytora tekstów. Użyj edytora tekstów, aby przechowywać wartości konfiguracji skojarzone z zasobami platformy Azure w przypadku, gdy piaskownica zostanie upłynął po upływie 20 minut. W edytorze tekstów zapisz następujące nazwy i wartości, które mają być używane na następnych stronach lekcji.
Nazwa/nazwisko Wartość Nazwa grupy zasobów Wyświetlona na tej stronie sieci Web Sufiks Przechowywane w pliku $suffix
. Na przykład wartość parametru$suffix
to586732230
.parametry połączenia centrum IoT Przechowywane w $hubConnectionString
Nazwa centrum IoT hub-$suffix
. Na przykładhub-586732230
.Nazwa usługi DPS dps-$suffix
. Na przykładdps-586732230
.Zakres identyfikatorów usługi DPS Wartość dla idScope
w danych JSON zwróconych z polecenia uruchomionegoaz iot dps create
w kroku 5. Na przykład wartość parametruidScope
to0ne0000000
.
Zasoby programistyczne
Aby zasymulować aprowizowanie urządzeń IoT za pośrednictwem usługi Device Provisioning Service, na maszynie dewelopera uruchomisz dwie aplikacje języka C#. Przygotuj następujące wymagania wstępne na maszynie dewelopera: