Компоненты Dapr в приложениях контейнеров Azure
Dapr использует модульную конструкцию, в которой функциональные возможности предоставляются в качестве компонента. Использование компонентов Dapr является необязательным и диктуется исключительно потребностями приложения.
Компоненты Dapr в приложениях-контейнерах — это ресурсы уровня среды, которые:
- Может предоставить подключаемую модель абстракции для подключения к поддержке внешних служб.
- Может быть предоставлен общий доступ между приложениями-контейнерами или областью действия для определенных приложений контейнеров.
- Можно использовать секреты Dapr для безопасного получения метаданных конфигурации.
В этом руководстве вы узнаете, как настроить компоненты Dapr для служб контейнеров Azure.
Схема компонента
В проекте Dapr с открытым исходным кодом все компоненты соответствуют следующей базовой схеме.
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]
В приложениях контейнеров Azure приведенная выше схема немного упрощена для поддержки компонентов Dapr и удаления ненужных полей, включая apiVersion
kind
и избыточные метаданные и свойства спецификации.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Области компонентов
По умолчанию все приложения контейнеров с поддержкой Dapr в одной среде загружают полный набор развернутых компонентов. Чтобы обеспечить загрузку только соответствующих компонентов приложений-контейнеров во время выполнения, следует использовать области приложений. В следующем примере компонент загружается только двумя приложениями контейнеров с поддержкой Dapr с идентификаторами приложений APP-ID-1
Dapr и 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]
Примечание.
Области компонентов Dapr обеспечивают лучшие меры безопасности и соответствуют идентификатору приложения Dapr приложения контейнера, а не имени приложения контейнера.
Примеры компонентов
Чтобы создать компонент Dapr с помощью интерфейса командной строки для контейнерных приложений, можно использовать манифест YAML для контейнерных приложений. При настройке нескольких компонентов необходимо создать и применить отдельный ФАЙЛ YAML для каждого компонента.
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
Следующие шаги
Узнайте, как подключиться к Azure и внешним службам с помощью компонентов Dapr.