Używanie języka Dapr do tworzenia obciążeń aplikacji rozproszonych, które komunikują się z brokerem MQTT
Aby użyć składników wtyczki dapr brokera MQTT, wdróż składniki magazynu pub/podrzędnego i magazynu stanów we wdrożeniu aplikacji wraz z aplikacją Dapr. W tym przewodniku pokazano, jak wdrożyć aplikację przy użyciu zestawu DAPR SDK i składników podłączanych brokera MQTT.
Wymagania wstępne
- Wdrożone operacje usługi Azure IoT — Szybki start: uruchamianie operacji usługi Azure IoT w usłudze GitHub Codespaces przy użyciu języka K3s
- Wdrożone składniki języka Dapr brokera MQTT — wdrażanie składników języka Dapr brokera MQTT
Tworzenie aplikacji dapr
Kompilowanie aplikacji
Pierwszym krokiem jest napisanie aplikacji korzystającej z zestawu DAPR SDK do publikowania/subskrybowania lub zarządzania stanem.
- Przewodnik Szybki start dotyczący publikowania i subskrybowania języka Dapr
- Przewodnik Szybki start dotyczący zarządzania stanem w języku Dapr
Spakuj aplikację
Po zakończeniu pisania aplikacji Dapr skompiluj kontener:
Spakuj aplikację do kontenera za pomocą następującego polecenia:
docker build . -t my-dapr-app
Wypchnij go do wybranego rejestru kontenerów, na przykład:
Wdrażanie aplikacji dapr
Poniższa definicja wdrożenia zawiera woluminy uwierzytelniania SAT i łańcucha certyfikatów TLS oraz wykorzystuje iniekcję przyczepki dapr, aby automatycznie dodać składniki podłączane do zasobnika.
Następujące składniki definicji mogą wymagać dostosowania do określonej aplikacji:
Składnik opis template:metadata:annotations:dapr.io/inject-pluggable-components
Umożliwia automatyczne wstrzykiwanie składników do zasobnika operacji IoT template:metadata:annotations:dapr.io/app-port
Informuje dapr, na którym porcie nasłuchuje aplikacja. Jeśli twoja aplikacja nie korzysta z tej funkcji (np. subskrypcji pubsub), usuń ten wiersz volumes:mqtt-client-token
Token uwierzytelniania systemu używany do uwierzytelniania składników wtyczki Dapr za pomocą brokera MQTT volumes:aio-ca-trust-bundle
Łańcuch zaufania w celu zweryfikowania certyfikatu TLS brokera MQTT. To ustawienie domyślne dla certyfikatu testowego wdrożonego przy użyciu operacji usługi Azure IoT containers:name
Nazwa nadana kontenerowi aplikacji containers:image
Kontener aplikacji, który chcesz wdrożyć
Uwaga
Jeśli aplikacja Dapr nie nasłuchuje ruchu z przyczepki Dapr, usuń dapr.io/app-port
adnotacje i dapr.io/app-protocol
w przeciwnym razie nie można zainicjować przyczepki Dapr.
Zapisz następujący plik yaml w pliku o nazwie
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>
Wdróż składnik, uruchamiając następujące polecenie:
kubectl apply -f dapr-app.yaml kubectl get pods -w
Zasobnik powinien zgłaszać trzy kontenery uruchomione po krótkim interwale, jak pokazano w następujących przykładowych danych wyjściowych:
NAME READY STATUS RESTARTS AGE ... my-dapr-app 3/3 Running 0 30s
Rozwiązywanie problemów
Jeśli aplikacja nie zostanie uruchomiona lub zobaczysz kontenery w CrashLoopBackoff
stanie, dziennik kontenera daprd
często zawiera przydatne informacje.
Uruchom następujące polecenie, aby wyświetlić dzienniki dla składnika daprd:
kubectl logs -l app=my-dapr-app -c daprd
Następne kroki
Teraz, gdy wiesz, jak opracować aplikację dapr, możesz uruchomić samouczek dotyczący tworzenia aplikacji opartej na zdarzeniach za pomocą języka Dapr.