نشر وتشغيل مهام سير العمل باستخدام ملحق Dapr لخدمة Azure Kubernetes (AKS)
باستخدام Dapr Workflow، يمكنك بسهولة تنسيق المراسلة وإدارة الحالة ومنطق معالجة الفشل عبر الخدمات المصغرة المختلفة. يمكن أن يساعدك Dapr Workflow على إنشاء تطبيقات طويلة الأمد ومتسامحة مع الأخطاء وحالة.
في هذا الدليل، يمكنك استخدام مثال سير عمل معالجة الطلب المتوفر من أجل:
- إنشاء سجل حاويات Azure والمجموعة AKS لهذا النموذج.
- تثبيت ملحق Dapr على نظام مجموعة AKS.
- نشر نموذج التطبيق إلى AKS.
- ابدأ واستعلم عن مثيلات سير العمل باستخدام استدعاءات واجهة برمجة تطبيقات HTTP.
مثال سير العمل هو مشروع ASP.NET Core مع:
Program.cs
ملف يحتوي على إعداد التطبيق، بما في ذلك تسجيل أنشطة سير العمل وسير العمل.- تم العثور على تعريفات سير العمل في
Workflows
الدليل. - تم العثور على تعريفات نشاط سير العمل في
Activities
الدليل.
إشعار
يعد Dapr Workflow حاليا ميزة تجريبية وهو على أساس الخدمة الذاتية والاشتراك. يتم توفير واجهات برمجة تطبيقات Beta Dapr والمكونات "كما هي" و"كما هي متاحة"، وهي تتطور باستمرار في أثناء تحركها نحو حالة مستقرة. لا يغطي دعم العملاء واجهات برمجة تطبيقات بيتا والمكونات.
المتطلبات الأساسية
إعداد البيئة
استنساخ نموذج المشروع
استنساخ مثال تطبيق سير العمل.
git clone https://github.com/Azure/dapr-workflows-aks-sample.git
انتقل إلى الدليل الجذر للعينة.
cd dapr-workflows-aks-sample
إنشاء نظام مجموعة Kubernetes
إنشاء مجموعة موارد للاحتفاظ بمجموعة AKS.
az group create --name myResourceGroup --location eastus
إنشاء نظام مجموعة AKS.
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
تأكد من kubectl
تثبيت وأشار إلى نظام مجموعة AKS الخاص بك. في حال كنت تستخدم Azure Cloud Shell، يكون kubectl
مثبتاً بالفعل.
لمزيد من المعلومات، راجع البرنامج التعليمي نشر نظام مجموعة AKS.
نشر التطبيق إلى AKS
تثبيت Dapr على نظام مجموعة AKS
تثبيت ملحق Dapr على نظام مجموعة AKS. قبل البدء، تأكد من أن لديك:
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
تحقق من تثبيت Dapr:
kubectl get pods -A
نشر مكون مخزن حالة Redis Actor
انتقل إلى Deploy
الدليل في الإصدار المتشعب من النموذج:
cd Deploy
نشر مكون Redis:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
شغّل التطبيق
بمجرد نشر Redis، انشر التطبيق إلى AKS:
kubectl apply -f deployment.yaml
كشف Dapr sidecar ونموذج التطبيق:
kubectl apply -f service.yaml
export APP_URL=$(kubectl get svc/workflows-sample -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export DAPR_URL=$(kubectl get svc/workflows-sample-dapr -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
تحقق من تصدير الأوامر أعلاه:
echo $APP_URL
echo $DAPR_URL
بدء سير العمل
الآن بعد أن تم نشر التطبيق و Dapr إلى نظام مجموعة AKS، يمكنك الآن بدء تشغيل مثيلات سير العمل والاستعلام عليها. إعادة تخزين العناصر في المخزون باستخدام استدعاء API التالي إلى نموذج التطبيق:
curl -X GET $APP_URL/stock/restock
بدء سير العمل:
curl -i -X POST $DAPR_URL/v1.0-beta1/workflows/dapr/OrderProcessingWorkflow/start?instanceID=1234 \
-H "Content-Type: application/json" \
-d '{ "input" : {"Name": "Paperclips", "TotalCost": 99.95, "Quantity": 1}}'
الناتج المتوقع:
HTTP/1.1 202 Accepted
Content-Type: application/json
Traceparent: 00-00000000000000000000000000000000-0000000000000000-00
Date: Tue, 23 Apr 2024 15:35:00 GMT
Content-Length: 21
تحقق من حالة سير العمل:
curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234
الناتج المتوقع:
HTTP/1.1 200 OK
Content-Type: application/json
Traceparent: 00-00000000000000000000000000000000-0000000000000000-00
Date: Tue, 23 Apr 2024 15:51:02 GMT
Content-Length: 580
{
"instanceID":"1234",
"workflowName":"OrderProcessingWorkflow",
"createdAt":"2024-04-23T15:35:00.156714334Z",
"lastUpdatedAt":"2024-04-23T15:35:00.176459055Z",
"runtimeStatus":"COMPLETED",
"dapr.workflow.input":"{ \"input\" : {\"Name\": \"Paperclips\", \"TotalCost\": 99.95, \"Quantity\": 1}}",
"dapr.workflow.output":"{\"Processed\":true}"
}
لاحظ أنه تم وضع علامة على حالة سير العمل كمكتملة.
الخطوات التالية
Azure Kubernetes Service