Schnellstart: Starten der Entwicklung mit den Azure IoT Einsatz SDKs

Erste Schritte bei der Entwicklung mit den Azure IoT Einsatz SDKs. Führen Sie die folgenden Schritte aus, um Ihre Entwicklungsumgebung zum Erstellen und Ausführen der Beispiele sowie zum Erstellen und Testen Ihrer eigenen hochverfügbaren Edgeanwendungen einzurichten.

GitHub Repository | .NET SDK | Go SDK | Rust SDK

Voraussetzungen

Bevor Sie beginnen, müssen folgende erforderliche Komponenten vorbereitet werden:

Einrichten

Für die Entwicklung mit den Azure IoT Einsatz SDKs ist ein Kubernetes-Cluster mit Azure IoT Einsatz erforderlich. Weitere Konfiguration ermöglicht Es Ihnen, direkt über die Entwicklerumgebung auf den MQTT-Broker zuzugreifen.

Von Bedeutung

Die folgenden Einrichtungsoptionen für die Entwicklungsumgebung verwenden K3s , die in K3d ausgeführt werden, für einen einfachen Kubernetes-Cluster. Sie stellen Azure IoT Einsatz mit test settings bereit. Wählen Sie für Produktionsbereitstellungen sichere Einstellungen aus.
Um sichere Einstellungen zu verwenden, befolgen Sie die Anweisungen in Vorbereiten Sie Ihren Azure Arc-fähigen Kubernetes-Cluster zum Erstellen eines K3s-Clusters auf Ubuntu und Deploy Azure IoT Einsatz in einem Produktionscluster zum Bereitstellen mit sicheren Einstellungen. Fahren Sie dann mit der Konfiguration von Azure IoT Einsatz für Entwicklungszwecke fort.

GitHub Codespaces bieten die optimiertste Oberfläche und können die Entwicklungsumgebung in wenigen Minuten in Betrieb nehmen.

  1. Erstellen Sie einen codespace in GitHub Codespaces aus dem Azure IoT Einsatz SDKs Repository:

    In GitHub Codespaces öffnen

  2. Nachdem der Codespace erstellt wurde, verfügen Sie über einen Container mit den Entwicklertools und einem lokalen K3s-Cluster, der in K3d vorinstalliert ist.

Bereitstellung von Azure IoT Einsatz

Sie aktivieren den im vorherigen Schritt erstellten Entwicklungscluster und stellen Azure IoT Einsatz mit test-Einstellungen bereit.

Öffnen Sie ein neues Bash-Terminal, und führen Sie die folgenden Schritte aus:

  1. Wechseln Sie zum Repository-Stammverzeichnis:

    cd <REPOSITORY ROOT>
    
  2. Führen Sie das Skript install-aio-arc.sh aus, um Ihren Cluster zu aktivieren und Azure IoT Einsatz bereitzustellen. Ersetzen Sie die Platzhalter durch Ihre Werte:

    Parameter Wert
    LOCATION Eine Azure Region in Ihrer Nähe. Die Liste der aktuell unterstützten Regionen finden Sie unter Unterstützte Regionen.
    RESOURCE_GROUP Ein Name für eine neue Azure Ressourcengruppe, in der Ihr Cluster erstellt wird.
    CLUSTER_NAME Ein Name für Ihren Kubernetes-Cluster.
    STORAGE_ACCOUNT_NAME Ein Name für Ihr Speicherkonto. Speicherkontonamen müssen zwischen 3 und 24 Zeichen lang sein und dürfen nur Zahlen und Kleinbuchstaben enthalten.
    SCHEMA_REGISTRY_NAME Ein Name für Ihre Schemaregistrierung. Schemaregistrierungsnamen dürfen nur Zahlen, Kleinbuchstaben und Bindestriche enthalten.
    SCHEMA_REGISTRY_NAMESPACE Ein Name für den Namespace Ihrer Schemaregistrierung. Der Namespace identifiziert eine Schemaregistrierung innerhalb eines Mandanten eindeutig. Namen der Schemaregistrierungsnamespaces dürfen nur Zahlen, Kleinbuchstaben und Bindestriche enthalten.
    ./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>
    

    Dieses Skript führt die folgenden Befehle aus:

    1. Melden Sie sich bei Azure CLI an
    2. Erstellen einer Ressourcengruppe
    3. Erforderliche Azure-Anbieter registrieren
    4. Verbinden des Kubernetes-Clusters mit Azure Arc
    5. Aktivieren von Azure Arc-Features
    6. Azure-Speicherkonto erstellen
    7. Erstellen Sie eine Azure IoT Einsatz-Schemaregistrierung
    8. Initialisieren von Azure IoT Einsatz
    9. Erstellen Azure IoT Einsatz Instanz
  3. Verwenden Sie nach Abschluss der Bereitstellung az iot ops check, um Azure IoT Einsatz Dienstbereitstellung für Integrität, Konfiguration und Nutzbarkeit zu bewerten. Der Befehl Überprüfen kann Ihnen helfen, Probleme in Ihrer Bereitstellung und Ihrer Konfiguration zu finden.

    az iot ops check
    

Konfigurieren von Azure IoT Einsatz für die Entwicklung

Nachdem Sie Azure IoT Einsatz bereitgestellt haben, konfigurieren Sie sie für die Entwicklung. Richten Sie den MQTT-Broker und die Authentifizierungsmethoden ein. Stellen Sie sicher, dass Sie die erforderlichen Umgebungsvariablen für Ihre Entwicklungsumgebung festlegen:

  1. Wechseln Sie zum Repository-Stammverzeichnis:

    cd <REPOSITORY ROOT>
    
  2. Führen Sie das Skript configure-aio.sh aus, um Azure IoT Einsatz für die Entwicklung zu konfigurieren:

    ./tools/deployment/configure-aio.sh
    

    Dieses Skript führt die folgenden Befehle aus:

    1. Richtet Zertifikatdienste ein, falls nicht vorhanden
    2. Erstellt Stamm- und Zwischen-CAs für die x509-Authentifizierung
    3. Erstellt das Vertrauensbündel-ConfigMap für den Broker zur Authentifizierung von x509-Clients.
    4. Konfiguriert BrokerListener und BrokerAuthentication Ressourcen für die SAT- und x509-Authentifizierung

Testen der Installation

Verwenden Sie mosquitto_pub, um eine Verbindung mit dem MQTT-Broker herzustellen und die x509-Zertifikate, SAT und das Trust-Bundle zu überprüfen.

  1. Exportieren Sie das Verzeichnis .session:

    export SESSION=$(git rev-parse --show-toplevel)/.session
    
  2. Testen keiner TLS, keiner Authentifizierung:

    mosquitto_pub -L mqtt://localhost:1883/hello -m world --debug
    
  3. Testen von TLS mit x509-Authentifizierung:

    mosquitto_pub -L mqtts://localhost:8883/hello -m world --cafile $SESSION/broker-ca.crt --cert $SESSION/client.crt --key $SESSION/client.key --debug
    
  4. Testen von TLS mit SAT-Authentifizierung:

    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
    

Ausführen eines Beispiels

In diesem Beispiel wird eine einfache Kommunikation zwischen einem Client und einem Server mithilfe von Telemetry und remote procedure call (RPC) veranschaulicht. Der Server verfolgt den Wert eines Leistungsindikators und akzeptiert RPC-Anforderungen vom Client zum Lesen oder Erhöhen dieses Leistungsindikators.

Im Beispiel wird der v2-Protokollcompiler mit WoT Thing-Modelldateien verwendet. Weitere Informationen finden Sie im Ordner TestThing.

  1. Installieren Sie das .NET 9.0 SDK.

  2. Die Beispiele im Azure IoT Einsatz SDKs GitHub Repository lesen die Konfiguration aus Umgebungsvariablen. Der Repositorystamm stellt eine .env Datei bereit, die die von den Beispielen verwendeten Variablen exportiert, um eine Verbindung mit dem MQTT-Broker herzustellen. Bearbeiten Sie die .env-Datei, um die Werte für Ihre Umgebung festzulegen, oder verwenden Sie die in der Datei angegebenen Standardwerte.

  3. Navigieren Sie zum Beispielverzeichnis CounterServer.

    cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterServer/
    
  4. Erstellen Sie das Beispiel:

    dotnet build
    
  5. Führen Sie das Beispiel aus:

    source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-server; dotnet run
    
  6. Öffnen Sie eine neue Shell, und navigieren Sie zum Beispielverzeichnis CounterClient:

    cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterClient/
    
  7. Erstellen Sie das Beispiel:

    dotnet build
    
  8. Führen Sie das Beispiel aus:

    source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-client; export COUNTER_SERVER_ID=counter-server; dotnet run
    
  9. Sie sehen, wie der Client und der Server kommunizieren, wobei der Client Anforderungen sendet, um den Zählerwert zu lesen und zu erhöhen. Dieses Beispiel zeigt die Ausgabemeldungen, die Sie sehen können:

    CounterClient-Ausgabe:

    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: 32
    

    CounterServer-Ausgabe:

    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'
    
  10. Das CounterClient Beispiel wird automatisch beendet, wenn es abgeschlossen ist. Sie können das Beispiel CounterServer auch beenden, indem Sie auf Ctrl+C im Terminal drücken.

Konfigurationszusammenfassung

MQTT-Brokerkonfiguration

Nach der Installation der Software enthält der Cluster die folgenden MQTT-Brokerdefinitionen:

Komponententyp Name BESCHREIBUNG
Broker default Der MQTT-Broker
BrokerListener default Bietet Cluster-Zugriff auf den MQTT Broker
BrokerListener Standard-extern Bietet Off-Cluster-Zugriff auf den MQTT-Broker
BrokerAuthentication default SAT-Authentifizierungsdefinition
BrokerAuthentication default-x509 Eine x509-Authentifizierungsdefinition

MQTT-Brokerzugriff

Sie können sowohl innerhalb als auch außerhalb des Clusters auf den MQTT-Broker zugreifen, indem Sie die in der folgenden Tabelle beschriebenen Verbindungsinformationen verwenden. Informationen dazu, welche Umgebungsvariablen beim Konfigurieren der Anwendung verwendet werden sollen, finden Sie unter Connection Settings.

Hinweis

Der Hostname beim Zugriff auf den MQTT-Broker außerhalb des Clusters kann je nach Ihrer Konfiguration von localhost abweichen.

Rechnername Authentifizierung TLS Am Cluster-Port Aus Clusterport
aio-broker SAT 18883 -
localhost Nichts 1883 1883
localhost x509 8883 8883
localhost SAT 8884 8884

Entwicklungsartefakte

Im Rahmen des Bereitstellungsskripts erstellt die lokale Umgebung die folgenden Dateien, um die Verbindung und Authentifizierung mit dem MQTT-Broker zu erleichtern. Sie finden diese Dateien im .session Verzeichnis im Stammverzeichnis des Repositories.

Datei BESCHREIBUNG
broker-ca.crt Das MQTT-Broker-Vertrauenspaket, das zur Validierung des MQTT-Brokers auf den Ports 8883 und 8884 erforderlich ist
token.txt Ein Dienstauthentifizierungstoken (SAT) für die Authentifizierung mit dem MQTT-Broker auf 8884
client.crt Ein x509-Clientzertifikat für die Authentifizierung mit dem MQTT-Broker am Port 8883
client.key Ein privater x509-Clientschlüssel für die Authentifizierung mit dem MQTT-Broker am Port 8883

Problembehandlung

Überprüfen Sie das Handbuch zur Problembehandlung, um Informationen über häufig auftretende Probleme im Azure IoT Einsatz SDKs GitHub Repository zu erhalten.

Nächste Schritte

In dieser Schnellstartanleitung richten Sie die Azure IoT Einsatz SDKs ein und haben eine Beispielanwendung ausgeführt. Weitere Informationen zum Entwickeln mit den SDKs finden Sie in den folgenden Ressourcen: