Azure Container Apps'teki Dapr bileşenleri

Dapr, işlevselliğin bileşen olarak sunulduğu modüler bir tasarım kullanır. Dapr bileşenlerinin kullanımı isteğe bağlıdır ve yalnızca uygulamanızın ihtiyaçlarına göre dikte edilir.

Kapsayıcı uygulamalarındaki Dapr bileşenleri, şu ortam düzeyinde kaynaklardır:

  • Destekleyen dış hizmetlere bağlanmak için eklenebilir bir soyutlama modeli sağlayabilir.
  • Kapsayıcı uygulamaları arasında paylaşılabilir veya belirli kapsayıcı uygulamalarla sınırlı olabilir.
  • Yapılandırma meta verilerini güvenli bir şekilde almak için Dapr gizli dizilerini kullanabilir.

Bu kılavuzda, Azure Container Apps hizmetleriniz için Dapr bileşenlerini yapılandırmayı öğreneceksiniz.

Bileşen şeması

Dapr açık kaynak projesinde tüm bileşenler aşağıdaki temel şemaya uygundur.

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 Container Apps'te bu şema, Dapr bileşenlerini desteklemek ve , apiVersionve gereksiz meta veriler ile belirtim özellikleri gibi kindgereksiz alanları kaldırmak için biraz basitleştirilmiştir.

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

Bileşen kapsamları

Varsayılan olarak, aynı ortamdaki Tüm Dapr özellikli kapsayıcı uygulamaları dağıtılan bileşenlerin tam kümesini yükler. Çalışma zamanında yalnızca uygun kapsayıcı uygulamalarının bileşenleri yüklediğinden emin olmak için uygulama kapsamları kullanılmalıdır. Aşağıdaki örnekte, bileşen yalnızca Dapr uygulama kimlikleri APP-ID-1 ve APP-ID-2ile iki Dapr özellikli kapsayıcı uygulaması tarafından yüklenir.

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

Not

Dapr bileşen kapsamları daha iyi güvenlik önlemleri sağlar ve kapsayıcı uygulama adından ziyade kapsayıcı uygulamasının Dapr uygulama kimliğine karşılık gelir.

Bileşen örnekleri

Container Apps CLI kullanarak bir Dapr bileşeni oluşturmak için kapsayıcı uygulamaları YAML bildirimini kullanabilirsiniz. Birden çok bileşeni yapılandırırken, her bileşen için ayrı bir YAML dosyası oluşturmanız ve uygulamanız gerekir.

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

Sonraki adım