مشاركة عبر


نشر وتشغيل مهام سير العمل باستخدام ملحق 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}"
}

لاحظ أنه تم وضع علامة على حالة سير العمل كمكتملة.

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