Compartir a través de


Componentes de Dapr en Azure Container Apps

Dapr usa un diseño modular en el que la funcionalidad se entrega como componente. El uso de componentes de Dapr es opcional y está determinado exclusivamente por las necesidades de la aplicación.

Los componentes de Dapr de las aplicaciones de contenedor son recursos de nivel de entorno que hacen lo siguiente:

  • Pueden proporcionar un modelo de abstracción enchufable para conectarse a servicios externos compatibles.
  • Se pueden compartir entre aplicaciones de contenedor o limitarse a aplicaciones de contenedor específicas.
  • Puede usar secretos de Dapr para recuperar de forma segura los metadatos de configuración.

En esta guía, aprenderá a configurar componentes de Dapr para los servicios de Azure Container Apps.

Esquema de componentes

En el proyecto de código abierto de Dapr, todos los componentes se ajustan al siguiente esquema básico.

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: [COMPONENT-NAME]
  namespace: [COMPONENT-NAMESPACE]
spec:
  type: [COMPONENT-TYPE]
  version: v1
  initTimeout: [TIMEOUT-DURATION]
  ignoreErrors: [BOOLEAN]
  metadata:
    - name: [METADATA-NAME]
      value: [METADATA-VALUE]

En Azure Container Apps, el esquema anterior se ha simplificado ligeramente para admitir componentes de Dapr y quitar campos innecesarios, incluidos apiVersion, kind, y los metadatos y propiedades de especificación redundantes.

componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]

Ámbitos de componente

De manera predeterminada, todas las aplicaciones de contenedor habilitadas para Dapr dentro del mismo entorno cargan el conjunto completo de componentes implementados. Para asegurarse de que solo las aplicaciones de contenedor adecuadas cargan componentes en tiempo de ejecución, se deben usar ámbitos de aplicación. En el ejemplo siguiente, el componente solo se carga mediante las dos aplicaciones de contenedor habilitadas para Dapr con los identificadores de aplicación de Dapr APP-ID-1 y APP-ID-2:

componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]
scopes:
  - [APP-ID-1]
  - [APP-ID-2]

Nota:

Los ámbitos de componentes de Dapr proporcionan mejores medidas de seguridad y corresponden al identificador de aplicación de Dapr de una aplicación contenedora, no al nombre de la aplicación contenedora.

Ejemplos de componentes

Para crear un componente de Dapr mediante la CLI de Container Apps, puede usar un manifiesto YAML de aplicaciones de contenedor. Al configurar varios componentes, debe crear y aplicar un archivo YAML independiente para cada componente.

az containerapp env dapr-component set --name ENVIRONMENT_NAME --resource-group RESOURCE_GROUP_NAME --dapr-component-name pubsub --yaml "./pubsub.yaml"
# pubsub.yaml for Azure Service Bus component
componentType: pubsub.azure.servicebus.queue
version: v1
secretStoreComponent: "my-secret-store"
metadata:
  - name: namespaceName
    # Required when using Azure Authentication.
    # Must be a fully-qualified domain name
    value: "[your_servicebus_namespace.servicebus.windows.net]"
  - name: azureTenantId
    value: "[your_tenant_id]"
  - name: azureClientId 
    value: "[your_client_id]"
  - name: azureClientSecret
    secretRef: azClientSecret
scopes:
  - publisher-app
  - subscriber-app

Pasos siguientes

Obtenga información sobre cómo conectarse a Azure y a servicios externos mediante componentes de Dapr.