Compartir vía


API de microservicios con tecnología de Dapr

Azure Container Apps proporciona API con tecnología de Distributed Application Runtime (Dapr) que le ayudan a escribir e implementar microservicios sencillos, portátiles, resistentes y protegidos. Dapr trabaja junto con Azure Container Apps como una capa de abstracción para proporcionar una plataforma escalable y de bajo mantenimiento. Azure Container Apps ofrece una selección de API, componentes y características de Dapr totalmente administrados, que se adaptan específicamente a escenarios de microservicios. Solo tiene que habilitar y configurar Dapr como de costumbre en el entorno de la aplicación contenedora.

Funcionamiento de las API de microservicios con la aplicación de contenedor

Configure Dapr para su entorno de aplicaciones contenedoras con una aplicación contenedora habilitada para Dapr, un componente de Dapr configurado para su solución y un sidecar de Dapr que invoque la comunicación entre ambos. En el diagrama siguiente se muestran estos conceptos básicos, mediante la API pub/sub como ejemplo.

Diagrama de demostración de Dapr pub/sub y su funcionamiento en Container Apps.

Etiqueta Configuración de Dapr Descripción
1 Container Apps con Dapr habilitado Dapr está habilitado en el nivel de aplicación de contenedor mediante la configuración de un conjunto de argumentos de Dapr. Estos valores se aplican a todas las revisiones de una aplicación de contenedor determinada cuando se ejecutan en modo de varias revisiones.
2 Dapr Las API de Dapr totalmente administradas se exponen a cada aplicación de contenedor mediante un sidecar de Dapr. Las API de Dapr se pueden invocar desde la aplicación de contenedor mediante HTTP o gRPC. El sidecar de Dapr se ejecuta en el puerto HTTP 3500 y el puerto gRPC 50001.
3 Configuración de componentes de Dapr Dapr usa un diseño modular en el que la funcionalidad se entrega como componente. Los componentes de Dapr se pueden compartir entre varias aplicaciones de contenedor. Los identificadores de aplicación de Dapr proporcionados en la matriz de ámbitos dictan qué aplicaciones de contenedor habilitadas para Dapr cargan un componente determinado en tiempo de ejecución.

API, componentes y herramientas de Dapr compatibles

API administradas

Azure Container Apps ofrece API de Dapr administradas disponibles con carácter general (bloques de creación). Estas API están totalmente administradas y se admiten para su uso en entornos de producción.

Para obtener más información sobre el uso de las API y característica de alfa Dapr, consulte las Preguntas frecuentes sobre Dapr.

Diagrama en el que se muestra la API de Dapr.

API Estado Descripción
Invocación de servicio a servicio GA Descubra los servicios y realice llamadas de servicio a servicio confiables y directas con autenticación y cifrado automáticos de mTLS. Consulte las limitaciones conocidas de la invocación del servicio Dapr en Azure Container Apps.
Administración de estados GA Proporciona funcionalidades de administración de estado para transacciones y operaciones CRUD.
Pub/sub GA Permite que las aplicaciones de contenedor de publicadores y suscriptores se comuniquen entre ellos a través de un agente de mensajes intermediario. También puede crear suscripciones declarativas a un tema mediante un archivo JSON de componente externo. Obtenga más información sobre la API pub/sub declarativa.
Enlaces GA Desencadene las aplicaciones en función de eventos
Actores GA Los actores de Dapr son unidades de trabajo orientadas a mensajes, de un solo subproceso y diseñadas para escalar rápidamente. Por ejemplo, en situaciones de carga de trabajo en ráfaga intensivas.
Observabilidad GA Envíe información de seguimiento a un back-end de Application Insights.
Secretos GA Acceda a secretos desde el código de la aplicación o haga referencia a valores seguros en los componentes de Dapr.
Configuración GA Recupere los elementos de configuración de la aplicación y suscríbase a ellos para los almacenes de configuración admitidos.

SDK compatibles

Los paquetes de SDK de cliente más recientes de Dapr son compatibles con Azure Container Apps. Puede usar cualquiera de las API de Dapr de GA compatibles con las siguientes versiones del SDK de cliente de Dapr:

Lenguaje Versión del SDK
Java 1.12.0
Go 1.11.0
Python 1.14.0
.NET 1.14.0
JavaScript 3.3.1
Rust 0.15.1

Nota:

Actualmente, las extensiones de servidor de Dapr, el actor y los paquetes del SDK de flujo de trabajo no son compatibles con Azure Container Apps. Obtenga más información sobre todos los paquetes del SDK de Dapr.

Componentes de nivel 1 frente a componentes de nivel 2

Se admite un subconjunto de componentes de Dapr. Dentro de ese subconjunto, los componentes de Dapr se dividen en dos categorías de soporte técnico: nivel 1 o nivel 2.

  • Componentes de nivel 1: componentes estables que reciben investigación inmediata en escenarios críticos (seguridad o regresión grave). De lo contrario, Microsoft colabora con código abierto para abordar el problema en una revisión o en la próxima versión normal.
  • Componentes de nivel 2: componentes que se investigan con una prioridad menor, ya que no tienen un estado estable o están con un proveedor externo.

Componentes de nivel 1

API Componente Tipo
Administración de estados Azure Cosmos DB
Azure Blob Storage v1
Azure Table Storage
Microsoft SQL Server
state.azure.cosmosdb
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
Publicación y suscripción Azure Service Bus Queues
Azure Service Bus Topics
Azure Event Hubs
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
Enlace Colas de Azure Storage
Azure Service Bus Queues
Azure Blob Storage
Azure Event Hubs
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
Administración de secretos Azure Key Vault secretstores.azure.keyvault

Componentes de nivel 2

API Componente Tipo
Administración de estados PostgreSQL
MySQL y MariaDB
Redis
state.postgresql
state.mysql
state.redis
Publicación y suscripción Apache Kafka
Secuencias de Redis
pubsub.kafka
pubsub.redis
Enlace Azure Event Grid
Azure Cosmos DB
Apache Kafka
PostgreSQL
Redis
Cron
bindings.azure.eventgrid
bindings.azure.cosmosdb
bindings.kafka
bindings.postgresql
bindings.redis
bindings.cron
Configuración PostgreSQL
Redis
configuration.postgresql
configuration.redis

Herramientas

Azure Container Apps garantiza la compatibilidad con las herramientas de código abierto de Dapr, como los SDK y la CLI.

Limitaciones

  • Especificación de configuración de Dapr: cualquier funcionalidad que requiera el uso de la especificación de configuración de Dapr.
  • Anotaciones de sidecar de Dapr que no aparecen en la guía de habilitación de Dapr
  • API y componentes admiten: solo se admiten las API y componentes de Dapr enumerados como disponibilidad general, nivel 1, o nivel 2 en este artículo se admiten en Azure Container Apps.
  • Recordatorios de actor: requiere un minReplicas de 1+ para asegurarse de que los avisos siempre estarán activos y se activarán correctamente.
  • Trabajos: Dapr no se admite para trabajos.

Pasos siguientes