Compartilhar via


Componentes do Dapr nos Aplicativos de Contêiner do Azure

O Dapr usa um design modular em que a funcionalidade é entregue como um componente. O uso de componentes do Dapr é opcional e ditado exclusivamente pelas necessidades do seu aplicativo.

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

  • pode fornecer um modelo de abstração plugável para se conectar aos serviços externos de suporte;
  • pode ser compartilhado entre aplicativos de contêiner ou com escopo para aplicativos de contêiner específicos; e
  • Pode usar segredos Dapr para recuperar metadados de configuração com segurança.

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

Esquema de 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]

Nos Aplicativos de Contêiner do Azure, o esquema acima é ligeiramente simplificado para dar suporte a componentes do Dapr e remover campos desnecessários, incluindo apiVersion, kind e propriedades redundantes de metadados e especificações.

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

Escopos do componente

Por padrão, todos os aplicativos de contêiner habilitados para Dapr no mesmo ambiente carregam o conjunto completo de componentes implantados. Para garantir que apenas os aplicativos de contêiner apropriados carreguem componentes em runtime, os escopos do aplicativo devem ser usados. No exemplo a seguir, o componente só será carregado pelos dois aplicativos de contêiner habilitados para Dapr com as IDs de aplicativo do 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]

Observação

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

Exemplos de componente

Para criar um componente do Dapr por meio da CLI de Aplicativos de Contêiner, você pode usar um manifesto YAML de aplicativos de contêiner. Ao configurar vários componentes, você precisará criar e aplicar um arquivo YAML separado 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

Próximas etapas

Saiba como se conectar ao Azure e a serviços externos por meio de componentes do Dapr.