Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozpocznij programowanie przy użyciu zestawów SDK operacji usługi Azure IoT. Wykonaj następujące kroki, aby skonfigurować środowisko deweloperskie do tworzenia i uruchamiania przykładów, a także tworzenia i testowania własnych aplikacji brzegowych o wysokiej dostępności.
Repozytorium | GitHubZestaw SDK | Zestaw SDK języka | GoZestaw Rust SDK
Wymagania wstępne
Przed rozpoczęciem przygotuj następujące wymagania wstępne:
Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz je bezpłatnie .
Konto usługi GitHub .
Uprawnienia dostępu do platformy Azure. Aby uzyskać więcej informacji, zobacz Szczegóły > wdrożenia Wymagane uprawnienia.
Konfigurowanie
Programowanie przy użyciu zestawów SDK operacji usługi Azure IoT wymaga wdrożenia klastra Kubernetes z wdrożonym operacjami usługi Azure IoT. Dalsza konfiguracja umożliwia dostęp do brokera MQTT bezpośrednio ze środowiska deweloperskiego.
Ważne
Poniższe opcje konfiguracji środowiska deweloperskiego używają K3s działających w K3d dla uproszczonego klastra Kubernetes i wdraża operacje usługi Azure IoT przy użyciu ustawień testowych. W przypadku wdrożeń produkcyjnych wybierz pozycję Bezpieczne ustawienia.
Jeśli chcesz używać bezpiecznych ustawień, zalecamy wykonanie instrukcji opisanych w temacie Przygotowywanie klastra Kubernetes z włączoną usługą Azure Arc w celu utworzenia klastra K3s w systemie Ubuntu i wdrożenia operacji usługi Azure IoT w klastrze produkcyjnym w celu wdrożenia przy użyciu bezpiecznych ustawień. Następnie przejdź do konfigurowania operacji usługi Azure IoT na potrzeby wdrożenia.
Usługa GitHub Codespaces zapewnia najbardziej usprawnione środowisko i może w ciągu kilku minut uruchomić środowisko deweloperskie.
Wdrażanie operacji usługi Azure IoT
Włączysz klaster deweloperów utworzony w poprzednim kroku i wdrożysz operacje usługi Azure IoT przy użyciu ustawień testowych.
Otwórz nowy terminal powłoki bash i wykonaj następujące czynności:
Przejdź do katalogu głównego repozytorium:
cd <REPOSITORY ROOT>install-aio-arc.shUruchom skrypt, aby włączyć klaster w usłudze Arc i wdrożyć operacje usługi Azure IoT, zastępując symbole zastępcze wartościami:Parameter Wartość LOKALIZACJA Region świadczenia usługi Azure blisko Ciebie. Aby uzyskać listę aktualnie obsługiwanych regionów, zobacz Obsługiwane regiony. RESOURCE_GROUP Nazwa nowej grupy zasobów platformy Azure, w której zostanie utworzony klaster. CLUSTER_NAME Nazwa klastra Kubernetes. STORAGE_ACCOUNT_NAME Nazwa konta magazynu. Nazwy kont magazynu muszą mieć długość od 3 do 24 znaków i zawierać tylko cyfry i małe litery. SCHEMA_REGISTRY_NAME Nazwa rejestru schematów. Nazwy rejestru schematów mogą zawierać tylko cyfry, małe litery i łączniki. SCHEMA_REGISTRY_NAMESPACE Nazwa przestrzeni nazw rejestru schematów. Przestrzeń nazw jednoznacznie identyfikuje rejestr schematów w dzierżawie. Nazwy przestrzeni nazw rejestru schematu mogą zawierać tylko cyfry, małe litery i łączniki. ./tools/deployment/install-aio-arc.sh -l <LOCATION> -g <RESOURCE_GROUP> -c <CLUSTER_NAME> -s <STORAGE_ACCOUNT_NAME> -r <SCHEMA_REGISTRY_NAME> -n <SCHEMA_REGISTRY_NAMESPACE>Ten skrypt wykonuje następujące czynności:
- Logowanie się do interfejsu wiersza polecenia platformy Azure
- Tworzenie grupy zasobów
- Rejestrowanie wymaganych dostawców platformy Azure
- Łączenie klastra Kubernetes z usługą Azure Arc
- Włączanie funkcji usługi Azure Arc
- Tworzenie konta usługi Azure Storage
- Tworzenie rejestru schematów operacji usługi Azure IoT
- Inicjowanie operacji usługi Azure IoT
- Tworzenie wystąpienia operacji usługi Azure IoT
Po zakończeniu wdrażania użyj polecenia az iot ops check , aby ocenić wdrożenie usługi Azure IoT Operations pod kątem kondycji, konfiguracji i użyteczności. Polecenie check może pomóc w znalezieniu problemów we wdrożeniu i konfiguracji.
az iot ops check
Konfigurowanie operacji usługi Azure IoT na potrzeby programowania
Po wdrożeniu operacji usługi Azure IoT należy ją skonfigurować na potrzeby programowania. Obejmuje to skonfigurowanie brokera I metod uwierzytelniania MQTT oraz upewnienie się, że wymagane zmienne środowiskowe są ustawione dla środowiska deweloperskiego:
Przejdź do katalogu głównego repozytorium:
cd <REPOSITORY ROOT>Uruchom skrypt,
configure-aio.shaby skonfigurować operacje usługi Azure IoT na potrzeby programowania:./tools/deployment/configure-aio.shTen skrypt wykonuje następujące czynności:
- Konfigurowanie usług certyfikatów, jeśli brakuje
- Tworzenie głównych i pośrednich urzędów certyfikacji dla uwierzytelniania x509
- Tworzenie pakietu zaufania ConfigMap dla brokera w celu uwierzytelniania klientów x509
- Konfigurowanie zasobów
BrokerListeneriBrokerAuthenticationdla uwierzytelniania SAT i x509
Testowanie instalacji
Aby przetestować, czy konfiguracja działa poprawnie, użyj polecenia mosquitto_pub , aby nawiązać połączenie z brokerem MQTT w celu zweryfikowania certyfikatów x509, sat i pakietu zaufania.
Eksportuj
.sessionkatalog:export SESSION=$(git rev-parse --show-toplevel)/.sessionPrzetestuj bez protokołu TLS, bez uwierzytelniania:
mosquitto_pub -L mqtt://localhost:1883/hello -m world --debugPrzetestuj protokół TLS przy użyciu uwierzytelniania x509:
mosquitto_pub -L mqtts://localhost:8883/hello -m world --cafile $SESSION/broker-ca.crt --cert $SESSION/client.crt --key $SESSION/client.key --debugPrzetestuj protokół TLS przy użyciu uwierzytelniania SAT:
mosquitto_pub -L mqtts://localhost:8884/hello -m world --cafile $SESSION/broker-ca.crt -D CONNECT authentication-method K8S-SAT -D CONNECT authentication-data $(cat $SESSION/token.txt) --debug
Uruchamianie przykładu
W tym przykładzie pokazano prostą komunikację między klientem a serwerem przy użyciu telemetrii i zdalnego wywołania procedury (RPC). Serwer śledzi wartość licznika i akceptuje żądania RPC od klienta do odczytu lub przyrostowania tego licznika.
Instalowanie zestawu .NET 9.0 SDK
Przykłady w repozytorium GitHub zestawów SDK operacji usługi Azure IoT odczytują konfigurację ze zmiennych środowiskowych. Udostępniamy
.envplik w głównym katalogu repozytorium, który eksportuje zmienne, które przykłady używają do łączenia się z brokerem MQTT. Edytuj plik,.envaby ustawić wartości dla środowiska lub użyj wartości domyślnych podanych w pliku.Przejdź do przykładowego
CounterServerkatalogu:cd <REPOSITORY ROOT>/dotnet/samples/Protocol/Counter/CounterServer/Skompiluj przykład:
dotnet buildUruchom przykład:
source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-server; dotnet runOtwórz nową powłokę i przejdź do przykładowego
CounterClientkatalogu:cd <REPOSITORY ROOT>/dotnet/samples/Protocol/Counter/CounterClient/Skompiluj przykład:
dotnet buildUruchom przykład:
source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-client; export COUNTER_SERVER_ID=counter-server; dotnet runPowinien zostać wyświetlony klient i serwer komunikujący się z klientem wysyłającym żądania w celu odczytu i przyrostowania wartości licznika. Jest to przykład komunikatów wyjściowych, które można zobaczyć:
Dane wyjściowe CounterClient:
CounterClient Information: 0 : Invoked command 'readCounter' with correlation ID 12345 to topic 'rpc/command-samples/counter-server/readCounter' CounterClient Information: 0 : Invoked command 'increment' with correlation ID 123456 to topic 'rpc/command-samples/counter-server/increment' info: CounterClient.RpcCommandRunner[0] called counter.incr 1 with id 12346 info: CounterClient.CounterClient[0] Telemetry received from counter-server: CounterValue=1 info: CounterClient.RpcCommandRunner[0] counter 32 with id 12345 info: CounterClient.RpcCommandRunner[0] Current telemetry count: 32Dane wyjściowe CounterServer:
CounterServer Information: 0 : Command executor for 'reset' started. CounterServer Information: 0 : Command executor for 'increment' started. CounterServer Information: 0 : Command executor for 'readCounter' started. CounterServer.CounterService[0] --> Executing Counter.ReadCounter with id 12345 for counter-client CounterServer.CounterService[0] --> Executed Counter.ReadCounter with id 12345 for counter-client CounterServer.CounterService[0] --> Executing Counter.Increment with id 12346 for counter-client CounterServer.CounterService[0] --> Executed Counter.Increment with id 12346 for counter-client CounterServer Information: 0 : Telemetry sent successfully to the topic 'telemetry/telemetry-samples/counterValue'Przykład
CounterClientautomatycznie kończy działanie po zakończeniu. Możesz również zatrzymać próbkęCounterServer, naciskając wCtrl+Cterminalu.
Podsumowanie konfiguracji
Konfiguracja brokera MQTT
Po zakończeniu instalacji klaster zawiera następujące definicje brokera MQTT:
| Typ składnika | Name | Description |
|---|---|---|
Broker |
domyślny | Broker MQTT |
BrokerListener |
domyślny | Zapewnia dostęp klastra do brokera MQTT |
BrokerListener |
default-external | Zapewnia dostęp poza klastrem do brokera MQTT |
BrokerAuthentication |
domyślny | Definicja uwierzytelniania SAT |
BrokerAuthentication |
default-x509 | Definicja uwierzytelniania x509 |
Dostęp brokera MQTT
Dostęp do brokera MQTT można uzyskać zarówno w klastrze, jak i poza klastrem, korzystając z informacji o połączeniu zgodnie z opisem w poniższej tabeli. Zapoznaj się z tematem Ustawienia połączenia , aby uzyskać informacje na temat zmiennych środowiskowych, które mają być używane podczas konfigurowania aplikacji.
Uwaga / Notatka
Nazwa hosta podczas uzyskiwania dostępu do brokera MQTT poza klastrem może się różnić w localhost zależności od konfiguracji.
| Hostname | Authentication | magazyn lokalny wątku | Na porcie klastra | Poza portem klastra |
|---|---|---|---|---|
aio-broker |
SOBOTA | ✅ | 18883 |
- |
localhost |
Żaden | ❌ | 1883 |
1883 |
localhost |
x509 | ✅ | 8883 |
8883 |
localhost |
SOBOTA | ✅ | 8884 |
8884 |
Artefakty programistyczne
W ramach skryptu wdrażania następujące pliki są tworzone w środowisku lokalnym w celu ułatwienia połączenia i uwierzytelniania z brokerem MQTT. Te pliki znajdują się w katalogu znajdującym się w .session katalogu głównym repozytorium.
| File | Description |
|---|---|
broker-ca.crt |
Pakiet zaufania brokera MQTT wymagany do zweryfikowania brokera MQTT na portach 8883 i 8884 |
token.txt |
Token uwierzytelniania usługi (SAT) do uwierzytelniania za pomocą brokera MQTT na 8884 |
client.crt |
Certyfikat klienta x509 do uwierzytelniania za pomocą brokera MQTT na porcie 8883 |
client.key |
Klucz prywatny klienta x509 do uwierzytelniania za pomocą brokera MQTT na porcie 8883 |
Rozwiązywanie problemów
Zapoznaj się z przewodnikiem rozwiązywania problemów, aby zapoznać się z typowymi problemami w repozytorium GitHub zestawów SDK operacji usługi Azure IoT: Rozwiązywanie problemów.
Dalsze kroki
W tym przewodniku Szybki start skonfigurujesz zestawy SDK operacji usługi Azure IoT i uruchomisz przykładową aplikację. Aby dowiedzieć się więcej na temat programowania za pomocą zestawów SDK, zapoznaj się z następującymi zasobami: