Поделиться через


Компоненты 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 и удаления ненужных полей, включая apiVersionkindи избыточные метаданные и свойства спецификации.

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.