Azure Container Apps'teki Dapr bileşenleri

Dağıtılmış Uygulama Çalışma Zamanı (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 uygulamanızın gereksinimlerine 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'de bu şema, Dapr bileşenlerini desteklemek için biraz basitleştirilmiştir. Basitleştirilmiş sürüm, , apiVersionve gereksiz meta veriler ve belirtim özellikleri gibi kindgereksiz alanları kaldırır.

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 tamamını 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ını kullanmanız gerekir. Aşağıdaki örnekte, bileşen yalnızca Dapr uygulama kimlikleri APP-ID-1 ve APP-ID-2olan 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şen yapılandırırken, her bileşen için ayrı bir YAML dosyası oluşturun ve uygulayın.

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