مكونات Dapr في Azure Container Apps

يستخدم وقت تشغيل التطبيقات الموزعة (Dapr) تصميما معياريا حيث يتم تقديم الوظائف كمكون. استخدام مكونات DAPR اختياري ويعتمد على احتياجات تطبيقك.

مكونات Dapr في تطبيقات الحاوية هي موارد على مستوى البيئة:

  • يمكن أن توفر نموذج تجريد قابل للتوصيل للاتصال بالخدمات الخارجية الداعمة.
  • يمكن مشاركتها عبر تطبيقات الحاوية أو تحديد نطاقها لتطبيقات حاوية معينة.
  • يمكن استخدام بيانات Dapr السرية لاسترداد بيانات تعريف التكوين بشكل آمن.

في هذا الدليل، ستتعلم كيفية تكوين مكونات Dapr لخدمات Azure Container Apps.

مخطط المكون

في مشروع 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 Container Apps، تم تبسيط هذا المخطط قليلا لدعم مكونات 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 باستخدام CLI تطبيقات الحاويات، يمكنك استخدام بيان YAML الخاص بتطبيقات الحاويات. عند تكوين عدة مكونات، أنشئ وطبق ملف YAML منفصل لكل مكون.

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

الخطوة التالية