إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توفر مجموعات الجلسات أوقات تخصيص الجلسة الفرعية وإدارة دورة حياة كل جلسة.
المفاهيم المشتركة لكلا المجموعتين
عملية إنشاء تجمع تختلف قليلا حسب ما إذا كنت تنشئ مجموعة جلسات لمفسر الشيفرة أو تجمع حاويات مخصص. المفاهيم التالية تنطبق على كلا الطرفين.
لإنشاء مجموعات جلسات باستخدام Azure CLI، تأكد من أن لديك أحدث إصدارات Azure CLI وإضافة Azure Container Apps:
# Upgrade the Azure CLI
az upgrade
# Install or upgrade the Azure Container Apps extension
az extension add --name containerapp --upgrade --allow-preview true -y
تشمل أوامر تجمع الجلسات الشائعة:
az containerapp sessionpool createaz containerapp sessionpool showaz containerapp sessionpool listaz containerapp sessionpool updateaz containerapp sessionpool delete
استخدمها --help مع أي أمر لرؤية الحجج المتاحة والقيم المدعومة.
للتحقق من حالة مجموعة جلسات، استخدم az containerapp sessionpool show الأمر:
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
عند إنشاء أو تحديث تجمع، يمكنك تحديد حد أقصى لعدد الجلسات المتزامنة، وفترة انتظار خمولة، وما إذا كانت حركة المرور الصادرة مسموحا للجلسات.
Important
إذا قمت بتمكين الخروج (exres)، يمكن للكود الجاري في الجلسة الوصول إلى الإنترنت. كن حذرا عندما يكون الكود غير موثوق به لأنه يمكن استخدامه لتنفيذ أنشطة خبيثة مثل هجمات حجب الخدمة.
Important
إذا كانت الجلسة تستخدم لتشغيل كود غير موثوق، فلا تدرج معلومات أو بيانات لا تريد أن يصل إليها الكود غير الموثوق. افترض أن الكود خبيث وله وصول كامل إلى الحاوية، بما في ذلك متغيرات البيئة والأسرار والملفات.
تكوين مجموعة
استخدم az containerapp sessionpool create --help لرؤية أحدث أوراقات CLI لتكوين مجموعة الجلسات. يركز هذا القسم على خيارات التكوين المتقدمة التي تنطبق عبر إصدارات واجهات برمجة التطبيقات.
تكوين دورة حياة الجلسة
عند إنشاء أو تحديث تجمع جلسات، يمكنك ضبط كيفية إنهاء الجلسات عن طريق تعيين properties.dynamicPoolConfiguration.lifecycleConfiguration. بدءا من إصدار 2025-01-01API، اختر أحد نوعين من دورة الحياة.
للحصول على المواصفة الكاملة لواجهة برمجة التطبيقات، راجع مواصفة واجهة برمجة التطبيقات الخاصة ب SessionPools.
محدد الوقت (افتراضي)
مع دورة الحياة Timed ، يتم حذف الجلسة بعد فترة من عدم النشاط. أي طلب يرسل إلى جلسة يعيد ضبط مؤقت التهدئة، مما يمدد مدة الجلسة حتى تصل إلى cooldownPeriodInSecondsحد .
ملحوظة
Timed مدعوم لجميع أنواع تجمع الجلسات ويعمل بنفس الطريقة كما executionType: Timed في إصدارات واجهات برمجة التطبيقات السابقة.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"cooldownPeriodInSeconds": 600,
"lifecycleType": "Timed"
}
}
}
| Property | Description |
|---|---|
cooldownPeriodInSeconds |
يتم حذف الجلسة عندما لا توجد طلبات لهذه المدة. |
maxAlivePeriodInSeconds |
غير مدعوم لدورة Timed الحياة. |
نقطة نهاية الإدارة
Important
معرف الجلسة هو معلومات حساسة تتطلب عملية آمنة أثناء إنشاء وإدارة قيمتها. لحماية هذه القيمة، يجب على تطبيقك التأكد من أن كل مستخدم أو مستأجر لديه وصول فقط إلى جلساته الخاصة.
الفشل في تأمين الوصول إلى الجلسات قد يؤدي إلى سوء استخدام أو وصول غير مصرح به إلى البيانات المخزنة في جلسات مستخدميك. لمزيد من المعلومات، راجع معرفات الجلسات
يجب أن تتضمن جميع الطلبات إلى نقطة نهاية إدارة المجمع رأس Authorization مع رمز حامل. لتعلم كيفية المصادقة باستخدام واجهة برمجة تطبيقات إدارة المجمعات، راجع قسم المصادقة.
يجب أن يتضمن كل طلب API أيضا معامل identifier سلسلة الاستعلام مع معرف الجلسة. يتيح معرف الجلسة الفريد هذا التطبيق من التفاعل مع جلسات محددة. لمعرفة المزيد عن معرفات الجلسات، راجع معرفات الجلسة.
تخزين الصور مؤقتا
عند إنشاء أو تحديث تجمع جلسات، يقوم Azure Container Apps بتخزين صورة الحاوية في المجموعة مؤقتا. يساعد هذا التخزين المؤقت في تسريع عملية إنشاء جلسات جديدة.
أي تغييرات على الصورة لا تنعكس تلقائيا في الجلسات. لتحديث الصورة، قم بتحديث مجموعة الجلسات بعلامة صورة جديدة. استخدم وسم فريد لكل تحديث للصورة لضمان سحب الصورة الجديدة.
تجمع جلسات مترجم الشيفرة
-
Azure CLI - مدخل Azure
استخدم الأمر az containerapps sessionpool create لإنشاء المجموعة. المثال التالي ينشئ مجموعة جلسات مفسر شيفرات بايثون باسم my-session-pool. تأكد من استبداله <RESOURCE_GROUP> باسم مجموعة الموارد قبل تنفيذ الأمر.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--location westus2 \
--container-type PythonLTS \
--max-sessions 100 \
--cooldown-period 300 \
--network-status EgressDisabled
يمكنك تعريف الإعدادات التالية عند إنشاء تجمع جلسات:
| الإعداد | Description |
|---|---|
--container-type |
نوع مفسر الشيفرة الذي يجب استخدامه. تشمل القيم المدعومة PythonLTS وNodeLTS وShell وCustomContainer. |
--max-sessions |
الحد الأقصى لعدد الجلسات المخصصة المسموح به في نفس الوقت. القيمة القصوى هي 600. |
--cooldown-period |
عدد الثواني المسموح بها في وضع الخمول قبل الإنهاء. يتم إعادة تعيين فترة الخمول في كل مرة يتم فيها استدعاء واجهة برمجة التطبيقات الخاصة بالجلسة. النطاق المسموح به هو بين 300 و 3600. |
--network-status |
يحدد ما إذا كان حركة المرور الصادرة على الشبكة مسموحا بها من الجلسة. القيم الصالحة هي EgressDisabled (الافتراضية) و EgressEnabled. |
نقطة نهاية إدارة مفسر الكود
لاستخدام جلسات مفسر الكود مع تكاملات إطار عمل نماذج اللغة الكبيرة أو من خلال استدعاء نقاط نهاية واجهة برمجة التطبيقات الإدارية مباشرة، تحتاج إلى نقطة نهاية واجهة برمجة التطبيقات الإدارية الخاصة بالمجموعة.
النقطة النهائية موجودة في الصيغة https://<REGION>.dynamicsessions.io/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/sessionPools/<SESSION_POOL_NAME>.
لاسترجاع نقطة نهاية واجهة برمجة التطبيقات الإدارية لمجموعة جلسات، راجع القسم المشترك أعلاه لأمر مثالي.
النقاط النهائية التالية متاحة لإدارة الجلسات في مجموعة من المجموعات:
| مسار نقطة النهاية | Method | Description |
|---|---|---|
code/execute |
POST |
نفذ الكود في جلسة. |
files/upload |
POST |
رفع ملف إلى جلسة. |
files/content/{filename} |
GET |
حمل ملفا من جلسة. |
files |
GET |
قم بإدراج الملفات في الجلسة. |
تقوم ببناء الرابط الكامل لكل نقطة نهاية عن طريق ربط نقطة نهاية واجهة برمجة تطبيقات إدارة المجموعة مع مسار نقطة النهاية. يجب أن تتضمن سلسلة الاستعلام معاملة identifier تحتوي على معرف الجلسة، ومعاملة api-version بالقيمة 2024-02-02-preview. إصدارات API قد تتغير، لذا تأكد دائما من أحدث إصدار في وثائق REST API قبل استخدامها في الإنتاج.
على سبيل المثال: {sessionManagementEndpoint}/code/execute?api-version=2024-02-02-preview&identifier=<IDENTIFIER>
للحصول على مراجع واجهة برمجة التطبيقات REST، انظر واجهات برمجة تطبيقات الحاويات على مستوى البياناتونظرة عامة على عمليات مستوى البيانات في تطبيقات الحاويات.
تجمع جلسات الحاويات المخصصة
لإنشاء مجموعة جلسات حاوية مخصصة، تحتاج إلى توفير صورة حاوية وإعدادات تكوين المجموعة.
تقوم باستدعاء أو التواصل مع كل جلسة باستخدام طلبات HTTP. يجب أن تعرض الحاوية المخصصة خادم HTTP على منفذ تحدده للاستجابة لهذه الطلبات.
القدرات التالية تنطبق فقط على مجموعات جلسات الحاويات المخصصة.
نقطة نهاية إدارة الحاويات المخصصة
بالنسبة لتجمعات جلسات الحاويات المخصصة، احصل على نقطة النهاية الإدارية من بوابة Azure أو مخرج Azure CLI. يتم إعادة نقطة النهاية ك poolManagementEndpoint.
النقطة النهائية موجودة في الصيغة https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io.
OnContainerExit
مع OnContainerExit دورة الحياة، تبقى الجلسة نشطة حتى تخرج الحاوية من تلقاء نفسها أو تصل إلى الحد الأقصى لفترة الحياة.
{
"dynamicPoolConfiguration": {
"lifecycleConfiguration": {
"maxAlivePeriodInSeconds": 6000,
"lifecycleType": "OnContainerExit"
}
}
}
| Property | Description |
|---|---|
maxAlivePeriodInSeconds |
أقصى وقت يمكن للجلسة أن تبقى فيه قبل أن يتم حذفها. |
cooldownPeriodInSeconds |
غير مدعوم لدورة OnContainerExit الحياة. |
مجسات الحاويات
تسمح مجسات الحاويات بتحديد فحوصات صحة حاويات الجلسات حتى يتمكن الحوض من اكتشاف الجلسات غير الصحية واستبدالها للحفاظ على صحة الهدف readySessionInstances .
تدعم مجموعات الجلسات مسبارات LivenessوStarting . لمزيد من المعلومات حول سلوك المجسات، راجع Health Probes في Azure Container Apps.
عند إنشاء أو تحديث مجموعة جلسات، حدد المجسات في properties.customContainerTemplate.containers. للاطلاع على مخطط جسم الطلب الكامل، راجع مرجع إنشاء أو تحديث API في SessionPools. المثال التالي يوضح تكوينيا جزئيا مع تعريفات المجسات:
{
"properties": {
"customContainerTemplate": {
"containers": [
{
"name": "my-session-container",
"image": "myregistry.azurecr.io/my-session-image:latest",
"probes": [
{
"type": "Liveness",
"httpGet": {
"path": "/health",
"port": 8080
},
"periodSeconds": 10,
"failureThreshold": 3
},
{
"type": "Startup",
"httpGet": {
"path": "/ready",
"port": 8080
},
"periodSeconds": 5,
"failureThreshold": 30
}
]
}
]
},
"dynamicPoolConfiguration": {
"readySessionInstances": 5
}
}
}
-
Azure CLI - مدخل Azure
- مدير موارد Azure
تتطلب مجموعات جلسات الحاويات المخصصة بيئة Azure Container Apps مفعلة بملفات التحميل العملية. إذا لم يكن لديك بيئة، استخدم az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> الأمر لإنشاء واحدة.
استخدم الأمر az containerapp sessionpool create لإنشاء مجموعة جلسات حاوية مخصصة.
المثال التالي ينشئ مجموعة جلسات تسمى my-session-pool بصورة myregistry.azurecr.io/my-container-image:1.0حاوية مخصصة .
قبل إرسال الطلب، استبدل القيم المؤقتة بين الأقواس <> بالقيم المناسبة لتجمع الجلسات ومعرف الجلسة.
az containerapp sessionpool create \
--name my-session-pool \
--resource-group <RESOURCE_GROUP> \
--environment <ENVIRONMENT> \
--registry-server myregistry.azurecr.io \
--registry-username <USER_NAME> \
--registry-password <PASSWORD> \
--container-type CustomContainer \
--image myregistry.azurecr.io/my-container-image:1.0 \
--cpu 0.25 --memory 0.5Gi \
--target-port 80 \
--cooldown-period 300 \
--network-status EgressDisabled \
--max-sessions 10 \
--ready-sessions 5 \
--env-vars "key1=value1" "key2=value2" \
--location <LOCATION>
ينشئ هذا الأمر مجموعة جلسات مع الإعدادات التالية:
| المعلمة | قيمة | Description |
|---|---|---|
--name |
my-session-pool |
اسم مجموعة الجلسات. |
--resource-group |
my-resource-group |
مجموعة الموارد التي تحتوي على تجمع الجلسات. |
--environment |
my-environment |
اسم أو معرف الموارد لبيئة تطبيق الحاوية. |
--container-type |
CustomContainer |
نوع الحاوية في مجموعة الجلسة. يجب أن يكون ذلك CustomContainer لجلسات الحاويات المخصصة. |
--image |
myregistry.azurecr.io/my-container-image:1.0 |
صورة الحاوية المستخدمة في تجمع الجلسات. |
--registry-server |
myregistry.azurecr.io |
اسم مضيف خادم سجل الحاويات. |
--registry-username |
my-username |
اسم المستخدم لتسجيل الدخول إلى سجل الحاويات. |
--registry-password |
my-password |
كلمة المرور لتسجيل الدخول إلى سجل الحاويات. |
--cpu |
0.25 |
المعالج المطلوب بنوى. |
--memory |
0.5Gi |
الذاكرة المطلوبة. |
--target-port |
80 |
منفذ الجلسة المستخدم لحركة المرور الداخلة. |
--cooldown-period |
300 |
عدد الثواني التي يمكن أن تكون فيها الجلسة في وضع الخمول قبل انتهاء الجلسة. يتم إعادة تعيين فترة الخمول في كل مرة يتم فيها استدعاء واجهة برمجة التطبيقات الخاصة بالجلسة. يجب أن تكون القيمة بين 300 و 3600. |
--network-status |
EgressDisabled |
يحدد ما إذا كان حركة المرور الصادرة على الشبكة مسموحا بها من الجلسة. القيم الصالحة هي EgressDisabled (الافتراضية) و EgressEnabled. |
--max-sessions |
10 |
الحد الأقصى لعدد الجلسات التي يمكن تخصيصها في نفس الوقت. |
--ready-sessions |
5 |
العدد المستهدف من الجلسات الجاهزة في مجموعة الجلسات طوال الوقت. زد هذا العدد إذا تم تخصيص الجلسات أسرع من تجديد المخزون. |
--env-vars |
"key1=value1" "key2=value2" |
متغيرات البيئة التي يجب تعيينها في الحاوية. |
--location |
"Supported Location" |
موقع تجمع الجلسة. |
لتحديث مجموعة الجلسات، استخدم الأمر az containerapp sessionpool update .