Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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-appWypchnij 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-componentsUmożliwia automatyczne wstrzykiwanie składników do zasobnika operacji IoT template:metadata:annotations:dapr.io/app-portInformuje 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-tokenToken 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:nameNazwa nadana kontenerowi aplikacji containers:imageKontener aplikacji, który chcesz wdrożyć
Ostrzeżenie
Jeśli aplikacja Dapr nie nasłuchuje ruchu z przyczepki Dapr, usuń dapr.io/app-port adnotacje i dapr.io/app-protocolw 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 -wZasobnik 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
Dalsze kroki
Teraz, gdy wiesz, jak opracować aplikację dapr, możesz uruchomić samouczek dotyczący tworzenia aplikacji opartej na zdarzeniach za pomocą języka Dapr.