Partilhar via


Componentes do Dapr em Aplicativos de Contêiner do Azure

O Dapr usa um design modular onde a funcionalidade é entregue como um componente. O uso de componentes Dapr é opcional e ditado exclusivamente pelas necessidades da sua aplicação.

Os componentes do Dapr em aplicativos de contêiner são recursos no nível do ambiente que:

  • Pode fornecer um modelo de abstração conectável para conexão com serviços externos de suporte.
  • Pode ser partilhado entre aplicações de contentores ou delimitado para aplicações de contentores específicas.
  • Pode usar segredos do Dapr para recuperar com segurança os metadados de configuração.

Neste guia, você aprenderá a configurar componentes do Dapr para seus serviços de Aplicativos de Contêiner do Azure.

Esquema do componente

No projeto de código aberto Dapr, todos os componentes estão em conformidade com o esquema básico a seguir.

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]

No Azure Container Apps, este esquema é ligeiramente simplificado para suportar componentes Dapr e remover campos desnecessários, incluindo apiVersion, kind, e metadados e propriedades de especificação redundantes.

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

Escopos de componentes

Por padrão, todos os aplicativos de contêiner habilitados para Dapr dentro do mesmo ambiente carregam o conjunto completo de componentes implantados. Para garantir que apenas os aplicativos de contêiner apropriados carreguem componentes em tempo de execução, os escopos do aplicativo devem ser usados. No exemplo seguinte, o componente é carregado apenas pelas duas aplicações de contentores habilitadas com Dapr, com IDs de aplicação Dapr APP-ID-1 e 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

Os escopos do componente Dapr fornecem melhores medidas de segurança e correspondem à ID do aplicativo Dapr de um aplicativo contêiner, não ao nome do aplicativo contêiner.

Exemplos de componentes

Para criar um componente Dapr usando a CLI Container Apps, pode usar um manifesto YAML de aplicações container. Ao configurar vários componentes, você deve criar e aplicar um arquivo YAML separado para cada componente.

az containerapp env dapr-component set --name <your-environment-name> --resource-group <your-resource-group> --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

Próximo passo