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 compartilhado entre aplicativos de contêiner ou definido como escopo para aplicativos de contêiner específicos.
- Pode usar segredos do Dapr para recuperar metadados de configuração com segurança.
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]
Nos Aplicativos de Contêiner do Azure, o esquema acima é ligeiramente simplificado para dar suporte a componentes Dapr e remover campos desnecessários, incluindo apiVersion
, kind
e metadados redundantes e propriedades de especificação.
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 a seguir, o componente só é carregado pelos dois aplicativos de contêiner habilitados para Dapr com IDs de APP-ID-1
aplicativo Dapr 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 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ê deve 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óximos passos
Saiba como se conectar ao Azure e a serviços externos por meio de componentes do Dapr.