إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا البدء السريع، تستخدم امتداد Dapr في مجموعة Kubernetes مفعلة ب AKS أو Arc. يمكنك نشر مثالhello world، والذي يتكون من تطبيق Python الذي ينشئ الرسائل وتطبيق Node.js الذي يستهلك الرسائل ويستمر فيها.
المتطلبات الأساسية
- اشتراك Azure. إذا لم يكن لديك حساب، يمكنك إنشاء حساب مجاني.
- تثبيت Azure CLI
- عنقود AKS مع:
- تمكين هوية حمل العمل
- الهوية المدارة التي تم إنشاؤها في نفس الاشتراك
- حساب خدمة Kubernetes
- بيانات اعتماد الهوية الموحدة
- تم تثبيت امتداد DAPR على عنقود AKS
- Kubectl تم تركيبه محليا
نسخ المستودع
استنساخ مستودع التشغيل السريع ل Dapr باستخدام
git cloneالأمر.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitقم بالتغيير
dapr-aks-extension-quickstartإلى الدليل.cd dapr-aks-extension-quickstart
إنشاء مخزن Redis وتكوينه
افتح مدخل Azure لبدء تدفق إنشاء ذاكرة التخزين المؤقت في Azure لـ Redis.
املأ المعلومات الموصى بها وفقا لبدء البداية السريعة لإنشاء ذاكرة تخزين مؤقت في Azure لمثيل Redis .
حدد Create لبدء نشر مثيل Redis.
التحقق من معلومات المورد
بمجرد نشر مورد Redis، انتقل إلى صفحة النظرة العامة الخاصة به.
انتبه:
- اسم المضيف، الموجود في قسم Essentials في صفحة نظرة عامة على ذاكرة التخزين المؤقت. يبدو تنسيق اسم المضيف مشابها لما يلي:
xxxxxx.redis.cache.windows.net. - منفذ SSL موجود في الإعدادات>المتقدمة. القيمة الافتراضية هي
6380.
- اسم المضيف، الموجود في قسم Essentials في صفحة نظرة عامة على ذاكرة التخزين المؤقت. يبدو تنسيق اسم المضيف مشابها لما يلي:
انتقل إلىمصادقة>، وتحقق من تفعيل مصادقة Microsoft Entra على موردك.
إضافة هوية مدارة
في قسم المصادقة ، تحت مربع تفعيل مصادقة Microsoft Entra ، أدخل اسم الهوية المدارة التي أنشأتها كشرط مسبق.
تحقق من إضافة هويتك المدارة كأذونات نهج وصول مالك البيانات المعينة من قبل مستخدم Redis.
تمكين الوصول إلى الشبكة العامة
بالنسبة لهذا السيناريو، تستخدم ذاكرة التخزين المؤقت Redis الوصول إلى الشبكة العامة. تأكد من تنظيف الموارد بعد الانتهاء من هذه البداية السريعة.
انتقل إلى نقطةالنهاية الخاصة>.
اختر تمكين الوصول إلى الشبكة العامة من القائمة.
تكوين مكونات Dapr
في ملف redis.yaml ، يتم تكوين المكون لاستخدام مصادقة Entra ID باستخدام هوية عبء العمل مفعل لمجموعة AKS. لا توجد مفاتيح وصول مطلوبة.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
في محرر الكود المفضل لديك، انتقل إلى مجلد النشر في مستودع العينات وافتح redis.yaml.
بالنسبة ل
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"
انتقل إلى الدليل
deployوافتح node.yaml.استبدل قيمة الوحدة
<SERVICE_ACCOUNT_NAME>المؤقتة باسم حساب الخدمة الذي أنشأته.- يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.
تطبيق التكوين
تطبيق نشر تطبيق Node.js على نظام المجموعة باستخدام
kubectl applyالأمر .kubectl apply -f ./deploy/node.yamlعمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:
kubectl rollout status deploy/nodeappالوصول إلى الخدمة باستخدام
kubectl get svcالأمر .kubectl get svc nodeappدون ملاحظة في
EXTERNAL-IPالإخراج.
تحقق من خدمة Node.js
باستخدام
curl، اتصل بالخدمة باستخدام .EXTERNAL-IPcurl <EXTERNAL-IP>/portsمثال على الإخراج
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}إرسال طلب إلى التطبيق.
curl --request POST --data "@sample.json" --header Content-Type:application/json <EXTERNAL-IP>/neworderقم بتأكيد الطلب.
curl <EXTERNAL-IP>/orderالإخراج المتوقع
{ "orderId": "42" }
نشر التطبيق Python باستخدام Dapr sidecar
تكوين تطبيق Python
في python.yaml، يضاف لمواصفات البودرة تسمية لاستخدام هوية عبء العمل:
labels:
app: node
azure.workload.identity/use: "true"
انتقل إلى الدليل
deployوافتح python.yaml.استبدل قيمة الوحدة
<SERVICE_ACCOUNT_NAME>المؤقتة باسم حساب الخدمة الذي أنشأته.- يجب أن تكون هذه القيمة هي نفس حساب الخدمة الذي استخدمته لإنشاء بيانات اعتماد الهوية الموحدة.
تطبيق التكوين
نشر تطبيق Python إلى مجموعة Kubernetes باستخدام
kubectl applyالأمر .kubectl apply -f ./deploy/python.yamlعمليات توزيع Kubernetes غير متزامنة، لذلك قبل الانتقال إلى الخطوات التالية، تحقق من اكتمال النشر باستخدام الأمر التالي:
kubectl rollout status deploy/pythonapp
مراقبة الرسائل وتأكيد المثابرة
الآن بعد أن تم نشر كل من تطبيقي Node.js وPython، يمكنك مشاهدة الرسائل تأتي من خلالها.
احصل على سجلات تطبيق 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باستخدام
curl، اتصل بنقطة نهاية طلب تطبيق Node.js للحصول على أحدث طلب.curl <EXTERNAL-IP>/orderيجب أن تشاهد أحدث إخراج JSON في الاستجابة.
تنظيف الموارد
إذا لم تعد تخطط لاستخدام الموارد من هذا البدء السريع، يمكنك إزالة مجموعة الموارد، والعنقود، ومساحة الاسم، وجميع الموارد ذات الصلة باستخدام أمر az group delete .
az group delete --name <your-resource-group>