مشاركة عبر


تشغيل سريع: نشر تطبيق باستخدام ملحق مجموعة 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 إلى الدليل.

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

افتح مدخل Azure لبدء تدفق إنشاء Azure Cache for Redis.

  1. املأ المعلومات الموصى بها وفقا لإرشادات التشغيل السريع "إنشاء ذاكرة تخزين مؤقت 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 باستخدام هوية حمل العمل الممكنة لمجموعة AKS. لا توجد مفاتيح وصول مطلوبة.

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

  2. بالنسبة إلى redisHost، استبدل قيمة العنصر النائب <REDIS_HOST>:<REDIS_PORT> باسم مضيف ذاكرة التخزين المؤقت Redis ومنفذ SSL الذي حفظته سابقا من مدخل Microsoft Azure.

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

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

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

    kubectl apply -f ./deploy/redis.yaml
    
  2. تحقق من تكوين مخزن الحالة بنجاح باستخدام kubectl get components.redis الأمر .

    kubectl get components.redis -o 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> باسم serviceAccountName حساب الخدمة الذي أنشأته.

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

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

  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> باسم serviceAccountName حساب الخدمة الذي أنشأته.

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

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

  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 MyResourceGroup

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