Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill använda dapr-anslutningsbara komponenter för MQTT-asynkronisering distribuerar du både pub/sub- och state store-komponenterna i programdistributionen tillsammans med ditt Dapr-program. Den här guiden visar hur du distribuerar ett program med hjälp av komponenterna Dapr SDK och MQTT Broker.
Förutsättningar
- Azure IoT-åtgärder distribuerade – Snabbstart: Kör Azure IoT-åtgärder i GitHub Codespaces med K3s
- MQTT Broker Dapr-komponenter distribuerade – Distribuera Dapr-komponenter för MQTT-koordinator
Skapa ett Dapr-program
Skapa programmet
Det första steget är att skriva ett program som använder en Dapr SDK för att publicera/prenumerera eller utföra tillståndshantering.
- Snabbstart för Att publicera och prenumerera på Dapr
- Snabbstart för Dapr State Management
Paketera programmet
När du har skrivit Dapr-programmet skapar du containern:
- Paketera programmet i en container med följande kommando: - docker build . -t my-dapr-app
- Skicka det till valfritt containerregister, till exempel: 
Distribuera ett Dapr-program
Följande distributionsdefinition innehåller volymer för SAT-autentisering och TLS-certifikatkedja och använder Dapr-sidovagnsinmatning för att automatiskt lägga till de pluggbara komponenterna i podden.
Följande definitionskomponenter kan kräva anpassning till ditt specifika program:
Försiktighet
Om dapr-programmet inte lyssnar efter trafik från Dapr-sidovagnen tar du bort anteckningarna dapr.io/app-port och dapr.io/app-protocolannars misslyckas Dapr-sidovagnen med att initiera.
- Spara följande yaml i en fil med namnet - 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>
- Distribuera komponenten genom att köra följande kommando: - kubectl apply -f dapr-app.yaml kubectl get pods -w- Podden bör rapportera tre containrar som körs efter ett kort intervall, enligt följande exempelutdata: - NAME READY STATUS RESTARTS AGE ... my-dapr-app 3/3 Running 0 30s
Felsökning
Om programmet inte startar eller om du ser containrarna i CrashLoopBackoff tillståndet innehåller loggen för containern daprd ofta användbar information.
Kör följande kommando för att visa loggarna för daprd-komponenten:
kubectl logs -l app=my-dapr-app -c daprd
Nästa steg
Nu när du vet hur du utvecklar ett Dapr-program kan du köra självstudien för att skapa en händelsedriven app med Dapr.