جلسات الحاوية المخصصة لتطبيقات حاويات Azure
بالإضافة إلى مترجم التعليمات البرمجية المضمن الذي توفره جلسات Azure Container Apps الديناميكية، يمكنك أيضا استخدام حاويات مخصصة لتحديد بيئة الاختبار المعزولة لجلسة العمل الخاصة بك.
يستخدم لجلسات عمل الحاوية المخصصة
تتيح لك الحاويات المخصصة إنشاء حلول مصممة خصيصا لاحتياجاتك. فهي تمكنك من تنفيذ التعليمات البرمجية أو تشغيل التطبيقات في بيئات سريعة وسريعة الزوال وتوفر مسافات آمنة وموضع الحماية باستخدام Hyper-V. بالإضافة إلى ذلك، يمكن تكوينها بعزل اختياري للشبكة. تشمل بعض الأمثلة ما يلي:
مترجمو التعليمات البرمجية: عندما تحتاج إلى تنفيذ تعليمات برمجية غير موثوق بها في بيئات الاختبار المعزولة الآمنة بلغة غير مدعومة في المترجم المضمن، أو تحتاج إلى التحكم الكامل في بيئة مترجم التعليمات البرمجية.
التنفيذ المعزول: عندما تحتاج إلى تشغيل التطبيقات في سيناريوهات عدائية متعددة المستأجرين حيث يكون لكل مستأجر أو مستخدم بيئة الاختبار المعزولة الخاصة به. يتم عزل هذه البيئات عن بعضها البعض وعن التطبيق المضيف. تتضمن بعض الأمثلة التطبيقات التي تقوم بتشغيل التعليمات البرمجية التي يوفرها المستخدم، والتعليمات البرمجية التي تمنح المستخدم النهائي حق الوصول إلى shell المستندة إلى السحابة، ووكلاء الذكاء الاصطناعي، وبيئات التطوير.
استخدام جلسات الحاوية المخصصة
لاستخدام جلسات عمل حاوية مخصصة، يمكنك أولا إنشاء تجمع جلسة عمل مع صورة حاوية مخصصة. تبدأ Azure Container Apps تلقائيا تشغيل الحاويات في بيئات الاختبار المعزولة Hyper-V الخاصة بها باستخدام الصورة المتوفرة. بمجرد بدء تشغيل الحاوية، تكون متاحة لتجمع الجلسة.
عندما يطلب التطبيق الخاص بك جلسة عمل، يتم تخصيص مثيل على الفور من التجمع. تظل جلسة العمل نشطة حتى تدخل في حالة الخمول، والتي يتم إيقافها وإتلافها تلقائيا.
إنشاء تجمع جلسة حاوية مخصص
لإنشاء تجمع جلسة حاوية مخصص، تحتاج إلى توفير صورة حاوية وإعدادات تكوين التجمع.
يمكنك استدعاء كل جلسة عمل أو الاتصال بها باستخدام طلبات HTTP. يجب أن تعرض الحاوية المخصصة خادم HTTP على منفذ تحدده للاستجابة لهذه الطلبات.
لإنشاء تجمع جلسة حاوية مخصص باستخدام Azure CLI، تأكد من أن لديك أحدث إصدارات Azure CLI وملحق Azure Container Apps مع الأوامر التالية:
az upgrade
az extension add --name containerapp --upgrade --allow-preview true -y
تتطلب تجمعات جلسات الحاوية المخصصة بيئة Azure Container Apps الممكنة لملف تعريف حمل العمل. إذا لم يكن لديك بيئة، فاستخدم az containerapp env create -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP> --location <LOCATION> --enable-workload-profiles
الأمر لإنشاء بيئة.
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>
ينشئ هذا الأمر تجمع جلسة عمل بالإعدادات التالية:
المعلمة | قيمة | الوصف |
---|---|---|
--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 show
الأمر :
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
لتحديث تجمع جلسة العمل، استخدم az containerapp sessionpool update
الأمر .
هام
إذا تم استخدام جلسة العمل لتشغيل تعليمات برمجية غير موثوق بها، فلا تتضمن معلومات أو بيانات لا تريد أن تصل إليها التعليمات البرمجية غير الموثوق بها. افترض أن التعليمات البرمجية ضارة ولها حق الوصول الكامل إلى الحاوية، بما في ذلك متغيرات البيئة والأسرار والملفات الخاصة بها.
التخزين المؤقت للصور
عند إنشاء تجمع جلسة عمل أو تحديثه، تقوم Azure Container Apps بالتخزين المؤقت لصورة الحاوية في التجمع. يساعد هذا التخزين المؤقت على تسريع عملية إنشاء جلسات عمل جديدة.
لا تنعكس أي تغييرات على الصورة تلقائيا في جلسات العمل. لتحديث الصورة، قم بتحديث تجمع الجلسة بعلامة صورة جديدة. استخدم علامة فريدة لكل تحديث صورة للتأكد من سحب الصورة الجديدة.
التعامل مع جلسات العمل
يتفاعل التطبيق الخاص بك مع جلسة عمل باستخدام واجهة برمجة تطبيقات إدارة تجمع الجلسة.
تتبع نقطة نهاية إدارة التجمع لجلسات الحاوية المخصصة هذا التنسيق: https://<SESSION_POOL>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io
.
لاسترداد نقطة نهاية إدارة تجمع جلسة العمل، استخدم az containerapp sessionpool show
الأمر :
az containerapp sessionpool show \
--name <SESSION_POOL_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "properties.poolManagementEndpoint" \
--output tsv
يجب أن تتضمن جميع الطلبات إلى نقطة نهاية إدارة التجمع رأسا Authorization
مع رمز مميز للحامل. لمعرفة كيفية المصادقة باستخدام واجهة برمجة تطبيقات إدارة التجمع، راجع المصادقة.
يجب أن يتضمن كل طلب API أيضا معلمة identifier
سلسلة الاستعلام مع معرف الجلسة. يتيح معرف جلسة العمل الفريد هذا للتطبيق الخاص بك التفاعل مع جلسات عمل محددة. لمعرفة المزيد حول معرفات جلسة العمل، راجع معرفات الجلسة.
هام
معرف جلسة العمل هو معلومات حساسة تتطلب عملية آمنة أثناء إنشاء قيمته وإدارتها. لحماية هذه القيمة، يجب أن يضمن التطبيق الخاص بك أن كل مستخدم أو مستأجر لديه حق الوصول إلى جلسات العمل الخاصة به فقط. قد يؤدي الفشل في تأمين الوصول إلى الجلسات إلى إساءة استخدام البيانات المخزنة في جلسات عمل المستخدمين أو الوصول غير المصرح به إليها. لمزيد من المعلومات، راجع معرفات الجلسة
إعادة توجيه الطلبات إلى حاوية الجلسة:
تتم إعادة توجيه أي شيء في المسار يتبع نقطة نهاية إدارة التجمع الأساسي إلى حاوية الجلسة.
على سبيل المثال، إذا قمت بإجراء استدعاء إلى <POOL_MANAGEMENT_ENDPOINT>/api/uploadfile
، يتم توجيه الطلب إلى حاوية جلسة العمل في 0.0.0.0:<TARGET_PORT>/api/uploadfile
.
تفاعل الجلسة المستمر:
يمكنك الاستمرار في تقديم الطلبات إلى جلسة العمل نفسها. إذا لم تكن هناك طلبات إلى جلسة العمل لفترة أطول من فترة التهدئة، يتم حذف الجلسة تلقائيا.
نموذج الطلب
يوضح المثال التالي طلبا إلى جلسة حاوية مخصصة بواسطة معرف مستخدم.
قبل إرسال الطلب، استبدل العناصر النائبة بين الأقواس <>
بقيم خاصة بطلبك.
POST https://<SESSION_POOL_NAME>.<ENVIRONMENT_ID>.<REGION>.azurecontainerapps.io/<API_PATH_EXPOSED_BY_CONTAINER>?identifier=<USER_ID>
Authorization: Bearer <TOKEN>
{
"command": "echo 'Hello, world!'"
}
تتم إعادة توجيه هذا الطلب إلى جلسة الحاوية المخصصة مع معرف معرف المستخدم. إذا لم تكن الجلسة قيد التشغيل بالفعل، فإن Azure Container Apps تخصص جلسة عمل من التجمع قبل إعادة توجيه الطلب.
في المثال، تتلقى حاوية جلسة العمل الطلب في http://0.0.0.0:<INGRESS_PORT>/<API_PATH_EXPOSED_BY_CONTAINER>
.
استخدام الهوية المدارة
تسمح الهوية المدارة من معرف Microsoft Entra لتجمعات جلسة عمل الحاوية المخصصة وجلسات العمل الخاصة بها بالوصول إلى موارد Microsoft Entra المحمية الأخرى. لمزيد من الاطلاع على الهويات المدارة في معرف Microsoft Entra، راجع الهويات المدارة لموارد Azure.
يمكنك تمكين الهويات المدارة لتجمعات جلسة عمل الحاوية المخصصة. دعم الهويات المُدارة المعينة بواسطة النظام والمعينة بواسطة المستخدم في تطبيق الوظائف.
هناك طريقتان لاستخدام الهويات المدارة مع تجمعات جلسات الحاوية المخصصة:
مصادقة سحب الصورة: استخدم الهوية المدارة للمصادقة مع سجل الحاوية لسحب صورة الحاوية.
الوصول إلى الموارد: استخدم الهوية المدارة لتجمع الجلسة في جلسة عمل للوصول إلى موارد Microsoft Entra الأخرى المحمية. نظرا لتداعياتها الأمنية، يتم تعطيل هذه الإمكانية بشكل افتراضي.
هام
إذا قمت بتمكين الوصول إلى الهوية المدارة في جلسة عمل، يمكن لأي تعليمة برمجية أو برامج قيد التشغيل في جلسة العمل إنشاء رموز Entra المميزة للهوية المدارة للتجمع. نظرا لأن جلسات العمل تقوم عادة بتشغيل تعليمات برمجية غير موثوق بها، استخدم هذه الميزة بحذر.
لتمكين الهوية المدارة لتجمع جلسة حاوية مخصص، استخدم Azure Resource Manager.
تسجيل الدخول
تتوفر سجلات وحدة التحكم من جلسات الحاوية المخصصة في مساحة عمل Azure Log Analytics المقترنة ببيئة Azure Container Apps في جدول يسمى AppEnvSessionConsoleLogs_CL
.
الفوترة
تتم فوترة جلسات عمل الحاوية المخصصة استنادا إلى الموارد التي يستهلكها تجمع الجلسة. لمزيد من المعلومات، راجع فوترة Azure Container Apps.