Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Ein GitHubKonto.
Azure Zugriffsberechtigungen. Weitere Informationen finden Sie unter Bereitstellungsdetails > Erforderliche Berechtigungen.
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.
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:
Wechseln Sie zum Repository-Stammverzeichnis:
cd <REPOSITORY ROOT>Führen Sie das Skript
install-aio-arc.shaus, um Ihren Cluster zu aktivieren und Azure IoT Einsatz bereitzustellen. Ersetzen Sie die Platzhalter durch Ihre Werte:Parameter Wert LOCATIONEine Azure Region in Ihrer Nähe. Die Liste der aktuell unterstützten Regionen finden Sie unter Unterstützte Regionen. RESOURCE_GROUPEin Name für eine neue Azure Ressourcengruppe, in der Ihr Cluster erstellt wird. CLUSTER_NAMEEin Name für Ihren Kubernetes-Cluster. STORAGE_ACCOUNT_NAMEEin 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_NAMEEin Name für Ihre Schemaregistrierung. Schemaregistrierungsnamen dürfen nur Zahlen, Kleinbuchstaben und Bindestriche enthalten. SCHEMA_REGISTRY_NAMESPACEEin 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:
- Melden Sie sich bei Azure CLI an
- Erstellen einer Ressourcengruppe
- Erforderliche Azure-Anbieter registrieren
- Verbinden des Kubernetes-Clusters mit Azure Arc
- Aktivieren von Azure Arc-Features
- Azure-Speicherkonto erstellen
- Erstellen Sie eine Azure IoT Einsatz-Schemaregistrierung
- Initialisieren von Azure IoT Einsatz
- Erstellen Azure IoT Einsatz Instanz
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:
Wechseln Sie zum Repository-Stammverzeichnis:
cd <REPOSITORY ROOT>Führen Sie das Skript
configure-aio.shaus, um Azure IoT Einsatz für die Entwicklung zu konfigurieren:./tools/deployment/configure-aio.shDieses Skript führt die folgenden Befehle aus:
- Richtet Zertifikatdienste ein, falls nicht vorhanden
- Erstellt Stamm- und Zwischen-CAs für die x509-Authentifizierung
- Erstellt das Vertrauensbündel-ConfigMap für den Broker zur Authentifizierung von x509-Clients.
- Konfiguriert
BrokerListenerundBrokerAuthenticationRessourcen 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.
Exportieren Sie das Verzeichnis
.session:export SESSION=$(git rev-parse --show-toplevel)/.sessionTesten keiner TLS, keiner Authentifizierung:
mosquitto_pub -L mqtt://localhost:1883/hello -m world --debugTesten 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 --debugTesten 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.
Installieren Sie das .NET 9.0 SDK.
Die Beispiele im Azure IoT Einsatz SDKs GitHub Repository lesen die Konfiguration aus Umgebungsvariablen. Der Repositorystamm stellt eine
.envDatei 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.Navigieren Sie zum Beispielverzeichnis
CounterServer.cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterServer/Erstellen Sie das Beispiel:
dotnet buildFühren Sie das Beispiel aus:
source `git rev-parse --show-toplevel`/.env; export AIO_MQTT_CLIENT_ID=counter-server; dotnet runÖffnen Sie eine neue Shell, und navigieren Sie zum Beispielverzeichnis
CounterClient:cd <REPOSITORY ROOT>/dotnet/samples/Protocol/RPC/CounterClient/Erstellen Sie das Beispiel:
dotnet buildFü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 runSie 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: 32CounterServer-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'Das
CounterClientBeispiel wird automatisch beendet, wenn es abgeschlossen ist. Sie können das BeispielCounterServerauch beenden, indem Sie aufCtrl+Cim 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: