Utilizar Dapr para desarrollar cargas de trabajo de aplicaciones distribuidas que se comuniquen con la versión preliminar de MQ de Azure IoT
Importante
Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.
Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Para usar los componentes conectables de Dapr de la versión preliminar de MQ de Azure IoT, implemente los componentes pub/sub y del almacén de estado en la implementación de la aplicación junto con la aplicación Dapr. En esta guía se muestra cómo implementar una aplicación mediante el SDK de Dapr y los componentes conectables de IoT MQ.
Requisitos previos
- Operaciones de IoT de Azure implementadas: Implementación de Operaciones de IoT de Azure
- Componentes de Dapr de IoT MQ implementados: Implementación de componentes de Dapr de MQ de IoT
Creación de una aplicación Dapr
Compilación de la aplicación
El primer paso es escribir una aplicación que use un SDK de Dapr para publicar o suscribir, o realizar la administración del estado.
- Inicio rápido de publicación y suscripción de Dapr
- Inicio rápido de administración de estado de Dapr
Empaquetado de la aplicación
Cuando termines de escribir la aplicación Dapr, compila el contenedor:
Para empaquetar la aplicación en un contenedor, ejecute el siguiente comando:
docker build . -t my-dapr-app
Insértalo en un Container Registry de tu elección, como:
Implementación de una aplicación Dapr
La siguiente definición de implementación contiene los volúmenes necesarios para implementar la aplicación junto con los contenedores necesarios. Esta implementación utiliza el inyector sidecar de Dapr para agregar automáticamente el pod de componente conectable.
El yaml contiene una instancia de ServiceAccount, que se usa para generar SAT para la autenticación con IoT Mq y la implementación de la aplicación Dapr.
Para crear el archivo YAML, use las siguientes definiciones de componente:
Componente Descripción volumes.mqtt-client-token
Token de autenticación del sistema que se usa para autenticar los componentes conectables de Dapr con el agente de IoT MQ. volumes.aio-ca-trust-bundle
Cadena de confianza para validar el certificado TLS de MQTT broker. Este valor predeterminado es el certificado de prueba implementado con Azure IoT Operations. containers.mq-dapr-app
El contenedor de la aplicación Dapr que deseas implementar.
Guarde el siguiente archivo YAML en un archivo denominado
dapr-app.yaml
:apiVersion: v1 kind: ServiceAccount metadata: name: dapr-client namespace: azure-iot-operations annotations: aio-mq-broker-auth/group: dapr-workload --- apiVersion: apps/v1 kind: Deployment metadata: name: mq-dapr-app namespace: azure-iot-operations spec: replicas: 1 selector: matchLabels: app: mq-dapr-app template: metadata: labels: app: mq-dapr-app annotations: dapr.io/enabled: "true" dapr.io/inject-pluggable-components: "true" dapr.io/app-id: "mq-dapr-app" dapr.io/app-port: "6001" dapr.io/app-protocol: "grpc" spec: serviceAccountName: dapr-client volumes: # SAT token used to authenticate between Dapr and the MQTT broker - name: mqtt-client-token projected: sources: - serviceAccountToken: path: mqtt-client-token audience: aio-mq expirationSeconds: 86400 # Certificate chain for Dapr to validate the MQTT broker - name: aio-ca-trust-bundle configMap: name: aio-ca-trust-bundle-test-only containers: # Container for the Dapr application - name: mq-dapr-app image: <YOUR_DAPR_APPLICATION>
Implemente el componente mediante la ejecución del comando siguiente:
kubectl apply -f dapr-app.yaml kubectl get pods -w
El pod de carga de trabajo debe notificar todos los pods que se ejecutan después de un intervalo corto, como se muestra en la salida de ejemplo siguiente:
pod/dapr-workload created NAME READY STATUS RESTARTS AGE ... dapr-workload 3/3 Running 0 30s
Solución de problemas
Si la aplicación no se inicia o ve los pods en CrashLoopBackoff
, los registros de daprd
son más útiles. daprd
es un contenedor que se implementa automáticamente con la aplicación Dapr.
Para ver los registros, ejecute el siguiente comando:
kubectl logs dapr-workload daprd
Pasos siguientes
Ahora que sabes cómo desarrollar una aplicación Dapr, puedes ejecutar el tutorial para compilar una aplicación controlada por eventos con Dapr.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de