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.
Um die pluggbare Dapr-Komponenten für den MQTT-Broker zu verwenden, stellen Sie in Ihrer Anwendungsbereitstellung sowohl die Pub/Sub- als auch die Zustandsspeicherkomponenten zusammen mit Ihrer Dapr-Anwendung bereit. In diesem Leitfaden erfahren Sie, wie Sie eine Anwendung mit den austauschbaren Komponenten des Dapr SDK und des MQTT-Brokers bereitstellen.
Voraussetzungen
- Ein Azure Arc-fähiger Kubernetes-Cluster mit Azure IoT Einsatz im Einsatz. Wenn du keinen hast, kannst du den Anweisungen in Quickstart folgen: Run Azure IoT Einsatz in GitHub Codespaces mit K3s, um schnell einen in GitHub Codespaces zu erstellen.
- Dapr-Komponenten für den MQTT-Broker bereitgestellt – Bereitstellen von Dapr-Komponenten für den MQTT-Broker
Erstellen einer Dapr-Anwendung
Erstellen der Anwendung
Der erste Schritt besteht darin, eine Anwendung zu schreiben, die ein Dapr SDK zum Veröffentlichen/Abonnieren (Pub/Sub) oder zum Ausführen der Zustandsverwaltung verwendet.
Packen der Anwendung
Nachdem Sie die Dapr-Anwendung geschrieben haben, erstellen Sie den Container:
Führen Sie den folgenden Befehl aus, um die Anwendung in einen Container zu packen:
docker build . -t my-dapr-appÜbertragen Sie es in Ihre Container Registry Ihrer Wahl, z. B.:
Bereitstellen einer Dapr-Anwendung
Die folgende Deployment-Definition enthält Volumes für die SAT-Authentifizierung und die TLS-Zertifikatskette und verwendet die Dapr-Sidecar-Injektion, um dem Pod die plug-in-fähigen Komponenten automatisch hinzuzufügen.
Die folgenden Definitionskomponenten erfordern möglicherweise Anpassungen an Ihre jeweilige Anwendung:
Komponente BESCHREIBUNG template:metadata:annotations:dapr.io/inject-pluggable-componentsErmöglicht, dass die einsteckbaren IoT Operations-Komponenten automatisch in den Pod eingefügt werden. template:metadata:annotations:dapr.io/app-portTeilt Dapr mit, auf welchem Port Ihre Anwendung lauscht. Wenn Ihre Anwendung dieses Feature nicht verwendet (z. B. bei einem PubSub-Abonnement), entfernen Sie diese Zeile. volumes:mqtt-client-tokenDas Systemauthentifizierungstoken, das zur Authentifizierung der einsteckbaren Dapr-Komponenten beim MQTT-Broker verwendet wird volumes:aio-ca-trust-bundleDie Vertrauenskette zur Überprüfung des TLS-Zertifikats des MQTT Vermittlers. Dies ist standardmäßig das Testzertifikat, das mit Azure IoT Einsatz bereitgestellt wurde containers:nameEin Name für Ihren Anwendungscontainer containers:imageDer Anwendungscontainer, den Sie bereitstellen möchten
Vorsicht
Wenn Ihre Dapr-Anwendung nicht auf Datenverkehr vom Dapr-Sidecar lauscht, entfernen Sie die dapr.io/app-port- und dapr.io/app-protocolAnnotationen, andernfalls kann das Dapr-Sidecar nicht initialisiert werden.
Speichern Sie den folgenden YAML-Code in einer Datei namens
dapr-app.yaml:apiVersion: v1 kind: ServiceAccount metadata: name: dapr-client namespace: azure-iot-operations annotations: aio-broker-auth/group: dapr-workload --- apiVersion: apps/v1 kind: Deployment metadata: name: my-dapr-app namespace: azure-iot-operations spec: selector: matchLabels: app: my-dapr-app template: metadata: labels: app: my-dapr-app annotations: dapr.io/enabled: "true" dapr.io/inject-pluggable-components: "true" dapr.io/app-id: "my-dapr-app" dapr.io/app-port: "6001" dapr.io/app-protocol: "grpc" spec: serviceAccountName: dapr-client volumes: # SAT used to authenticate between Dapr and the MQTT broker - name: mqtt-client-token projected: sources: - serviceAccountToken: path: mqtt-client-token audience: aio-internal expirationSeconds: 86400 # Certificate chain for Dapr to validate the MQTT broker - name: aio-ca-trust-bundle configMap: name: azure-iot-operations-aio-ca-trust-bundle containers: # Container for the Dapr application - name: mq-dapr-app image: <YOUR_DAPR_APPLICATION>Stellen Sie die Komponente bereit, indem Sie den folgenden Befehl ausführen:
kubectl apply -f dapr-app.yaml kubectl get pods -wDer Pod sollte nach kurzer Zeit anzeigen, dass drei Container ausgeführt werden, wie in der folgenden Beispielausgabe gezeigt:
NAME READY STATUS RESTARTS AGE ... my-dapr-app 3/3 Running 0 30s
Problembehandlung
Wenn die Anwendung nicht gestartet wird oder die Container mit dem Zustand CrashLoopBackoff angezeigt werden, enthält das Protokoll für den Container daprd häufig nützliche Informationen.
Führen Sie den folgenden Befehl aus, um die Protokolle für die daprd-Komponente anzuzeigen:
kubectl logs -l app=my-dapr-app -c daprd
Nächste Schritte
Nachdem Sie nun wissen, wie Sie eine Dapr-Anwendung entwickeln, können Sie das Tutorial Erstellen einer ereignisgesteuerten App mit Dapr abschließen.