Quickstart: نشر تطبيق باستخدام إضافة Dapr لخدمة Azure Kubernetes (AKS) أو Kubernetes الفعال على Arc

في هذا البدء السريع، تستخدم امتداد Dapr في مجموعة Kubernetes مفعلة ب AKS أو Arc. يمكنك نشر مثالhello world، والذي يتكون من تطبيق Python الذي ينشئ الرسائل وتطبيق Node.js الذي يستهلك الرسائل ويستمر فيها.

المتطلبات الأساسية

نسخ المستودع

  1. استنساخ مستودع التشغيل السريع ل Dapr باستخدام git clone الأمر.

    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. قم بالتغيير dapr-aks-extension-quickstart إلى الدليل.

    cd dapr-aks-extension-quickstart
    

إنشاء مخزن Redis وتكوينه

افتح مدخل Azure لبدء تدفق إنشاء ذاكرة التخزين المؤقت في Azure لـ Redis.

  1. املأ المعلومات الموصى بها وفقا لبدء البداية السريعة لإنشاء ذاكرة تخزين مؤقت في Azure لمثيل Redis .

  2. حدد Create لبدء نشر مثيل Redis.

التحقق من معلومات المورد

  1. بمجرد نشر مورد Redis، انتقل إلى صفحة النظرة العامة الخاصة به.

  2. انتبه:

    • اسم المضيف، الموجود في قسم Essentials في صفحة نظرة عامة على ذاكرة التخزين المؤقت. يبدو تنسيق اسم المضيف مشابها لما يلي: xxxxxx.redis.cache.windows.net.
    • منفذ SSL موجود في الإعدادات>المتقدمة. القيمة الافتراضية هي 6380.
  3. انتقل إلىمصادقة>، وتحقق من تفعيل مصادقة Microsoft Entra على موردك.

إضافة هوية مدارة

  1. في قسم المصادقة ، تحت مربع تفعيل مصادقة Microsoft Entra ، أدخل اسم الهوية المدارة التي أنشأتها كشرط مسبق.

    لقطة شاشة تعرض الحقل حيث يمكنك تحديد هوية مدارة لإضافتها كمستخدم Redis.

  2. تحقق من إضافة هويتك المدارة كأذونات نهج وصول مالك البيانات المعينة من قبل مستخدم Redis.

تمكين الوصول إلى الشبكة العامة

بالنسبة لهذا السيناريو، تستخدم ذاكرة التخزين المؤقت Redis الوصول إلى الشبكة العامة. تأكد من تنظيف الموارد بعد الانتهاء من هذه البداية السريعة.

  1. انتقل إلى نقطةالنهاية الخاصة>.

  2. اختر تمكين الوصول إلى الشبكة العامة من القائمة.

تكوين مكونات Dapr

في ملف redis.yaml ، يتم تكوين المكون لاستخدام مصادقة Entra ID باستخدام هوية عبء العمل مفعل لمجموعة AKS. لا توجد مفاتيح وصول مطلوبة.

- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. في محرر الكود المفضل لديك، انتقل إلى مجلد النشر في مستودع العينات وافتح redis.yaml.

  2. بالنسبة ل redisHost، استبدل قيمة الوضع <REDIS_HOST>:<REDIS_PORT> المؤقت ب Redis cache hostname ومنفذ SSL الذي حفظته سابقا من بوابة Azure.

    - name: redisHost
      value: <your-cache-name>.redis.cache.windows.net:6380
    

تطبيق التكوين

قم بتطبيق ملف redis.yaml باستخدام kubectl apply الأمر.

kubectl apply -f ./deploy/redis.yaml

الإخراج المتوقع

component.dapr.io/statestore created

نشر التطبيق Node.js مع Dapr الجانبي

تكوين تطبيق Node.js

في node.yaml، يضاف لمواصفات الوحدة الاسم لاستخدام هوية عبء العمل:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. انتقل إلى الدليل deploy وافتح node.yaml.

  2. استبدل قيمة الوحدة <SERVICE_ACCOUNT_NAME> المؤقتة باسم حساب الخدمة الذي أنشأته.

    • يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.

تطبيق التكوين

  1. تطبيق نشر تطبيق Node.js على نظام المجموعة باستخدام kubectl apply الأمر .

    kubectl apply -f ./deploy/node.yaml
    
  2. عمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:

    kubectl rollout status deploy/nodeapp
    
  3. الوصول إلى الخدمة باستخدام kubectl get svc الأمر .

    kubectl get svc nodeapp
    
  4. دون ملاحظة في EXTERNAL-IP الإخراج.

تحقق من خدمة Node.js

  1. باستخدام curl، اتصل بالخدمة باستخدام .EXTERNAL-IP

    curl <EXTERNAL-IP>/ports
    

    مثال على الإخراج

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. إرسال طلب إلى التطبيق.

    curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworder
    
  3. قم بتأكيد الطلب.

    curl <EXTERNAL-IP>/order
    

    الإخراج المتوقع

    { "orderId": "42" }
    

نشر التطبيق Python باستخدام Dapr sidecar

تكوين تطبيق Python

في python.yaml، يضاف لمواصفات البودرة تسمية لاستخدام هوية عبء العمل:

labels:
  app: node
  azure.workload.identity/use: "true"
  1. انتقل إلى الدليل deploy وافتح python.yaml.

  2. استبدل قيمة الوحدة <SERVICE_ACCOUNT_NAME> المؤقتة باسم حساب الخدمة الذي أنشأته.

    • يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.

تطبيق التكوين

  1. نشر تطبيق Python إلى مجموعة Kubernetes باستخدام kubectl apply الأمر .

    kubectl apply -f ./deploy/python.yaml
    
  2. عمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:

    kubectl rollout status deploy/pythonapp
    

مراقبة الرسائل وتأكيد المثابرة

الآن بعد أن تم نشر كل من تطبيقي Node.js وPython، يمكنك مشاهدة الرسائل تأتي من خلالها.

  1. احصل على سجلات تطبيق Node.js باستخدام kubectl logs الأمر .

    kubectl logs --selector=app=node -c node --tail=-1
    

    الإخراج المتوقع

    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. باستخدام curl، اتصل بنقطة نهاية طلب تطبيق Node.js للحصول على أحدث طلب.

    curl <EXTERNAL-IP>/order
    

    يجب أن تشاهد أحدث إخراج JSON في الاستجابة.

تنظيف الموارد

إذا لم تعد تخطط لاستخدام الموارد من هذا البدء السريع، يمكنك إزالة مجموعة الموارد، والعنقود، ومساحة الاسم، وجميع الموارد ذات الصلة باستخدام أمر az group delete .

az group delete --name <your-resource-group>

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