إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح هذا البرنامج التعليمي كيفية تنفيذ تعليمة JavaScript البرمجية في جلسات عمل Azure Container Apps الديناميكية باستخدام واجهة برمجة تطبيقات HTTP.
نفذت في هذا البرنامج التعليمي:
- إنشاء جلسة مترجم تعليمة برمجية جديدة
- تعيين سياق الأمان المناسب لتجمع جلسة العمل
- تمرير تعليمة JavaScript البرمجية لتشغيل تطبيق الحاوية
المتطلبات الأساسية
تحتاج إلى الموارد التالية قبل أن تبدأ هذا البرنامج التعليمي.
| مورد | الوصف |
|---|---|
| حساب Azure | تحتاج إلى حساب "Azure" مع اشتراك مفعل. إذا لم يكن لديك مثل هذا الحساب، فيمكنك إنشاء واحد مجانًا. |
| Azure CLI | قم بتثبيت Azure CLI. |
الإعداد
ابدأ بإعداد Azure CLI بأحدث التحديثات وتسجيل الدخول إلى Azure.
تحديث Azure CLI إلى أحدث إصدار.
az upgradeسجل مزود الموارد
Microsoft.App.az provider register --namespace Microsoft.Appقم بتثبيت أحدث إصدار من ملحق Azure Container Apps CLI.
az extension add \ --name containerapp \ --allow-preview true --upgradeتسجيل الدخول إلى أزور.
az loginالاستعلام عن معرف اشتراك Azure وتعيين القيمة إلى متغير.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)تعيين المتغيرات المستخدمة في هذا الإجراء.
قبل تشغيل الأمر التالي، تأكد من استبدال العناصر النائبة المحيطة
<>بالقيم الخاصة بك.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION="northcentralus"يمكنك استخدام هذه المتغيرات لإنشاء الموارد في الخطوات التالية.
تعيين الاشتراك الذي تريد استخدامه لإنشاء مجموعة الموارد
az account set -s $SUBSCRIPTION_IDقم بإنشاء مجموعة موارد.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
إنشاء تجمع جلسة مترجم التعليمات البرمجية
az containerapp sessionpool create استخدم الأمر لإنشاء تجمع جلسة عمل Node.js مسؤول عن تنفيذ تعليمات JavaScript البرمجية العشوائية.
az containerapp sessionpool create \
--name $SESSION_POOL_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--max-sessions 5 \
--network-status EgressEnabled \
--container-type NodeLTS \
--cooldown-period 300
تعيين تعيينات الدور لواجهات برمجة التطبيقات لتنفيذ التعليمات البرمجية
للتفاعل مع واجهة برمجة تطبيقات تجمع جلسة العمل، يجب استخدام هوية مع Azure ContainerApps Session Executor تعيين الدور. في هذا البرنامج التعليمي، يمكنك استخدام هوية مستخدم معرف Microsoft Entra للاتصال بواجهة برمجة التطبيقات.
الاستعلام عن معرف كائن المستخدم الخاص بك.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)تعيين الدور لهويتك.
az role assignment create \ --role "Azure ContainerApps Session Executor" \ --assignee-object-id $USER_OBJECT_ID \ --assignee-principal-type User \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME"
الحصول على رمز مميز للحامل
للوصول المباشر إلى واجهة برمجة تطبيقات تجمع جلسة العمل، قم بإنشاء رمز مميز للوصول لتضمينه Authorization في رأس طلباتك. تأكد من أن الرمز المميز يحتوي على مطالبة جماعة مستهدفة (aud) بقيمة https://dynamicsessions.io. لمزيد من المعلومات، راجع قواعد المصادقة والتخويل .
احصل على الرمز المميز للوصول.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)إنشاء متغير للاحتفاظ بعنوان الطلب.
AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"يصاحب هذا العنوان الطلب الذي تقوم به إلى نقطة نهاية التطبيق الخاص بك.
الحصول على نقطة نهاية إدارة تجمع الجلسة
استخدم الأمر التالي لإرجاع نقطة نهاية التطبيق.
SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)
نقطة النهاية هذه هي الموقع الذي تجري فيه استدعاءات واجهة برمجة التطبيقات لتنفيذ حمولة التعليمات البرمجية في جلسة مترجم التعليمات البرمجية.
تنفيذ التعليمات البرمجية في جلسة العمل الخاصة بك
الآن بعد أن أصبح لديك رمز حامل لإنشاء سياق الأمان، ونقطة نهاية تجمع الجلسة، يمكنك إرسال طلب إلى التطبيق لتنفيذ كتلة التعليمات البرمجية الخاصة بك.
قم بتشغيل الأمر التالي لتشغيل التعليمات البرمجية JavaScript لتسجيل "hello world" في التطبيق الخاص بك.
curl -v -X 'POST' -H "$AUTH_HEADER" "$SESSION_POOL_MANAGEMENT_ENDPOINT/executions?api-version=2025-10-02-preview&identifier=test" -H 'Content-Type: application/json' -d '
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "console.log(\"hello-world\")"
}
}'
يجب أن تشاهد الإخراج الذي يشبه المثال التالي.
{
"properties": {
"status": "Success",
"stdout": "hello-world\n",
"stderr": "",
"executionResult": "",
"executionTimeInMilliseconds": 5
}
}
يمكنك العثور على المزيد من نماذج واجهة برمجة تطبيقات مترجم التعليمات البرمجية على GitHub.
تنظيف الموارد
الموارد التي تم إنشاؤها في هذا البرنامج التعليمي لها تأثير على فاتورة Azure. إذا كنت لن تستخدم هذه الخدمات على المدى الطويل، فقم بتشغيل الأمر التالي لإزالة كل شيء تم إنشاؤه في هذا البرنامج التعليمي.
az group delete \
--resource-group $RESOURCE_GROUP