مكونات 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 عبر Container Apps CLI، يمكنك استخدام بيان 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.