تخصيص مثيل الحساب باستخدام برنامج نصي

استخدم برنامج إعداد نصيا لطريقة تلقائية لتخصيص وتكوين مثيل حساب في وقت التوفير.

استخدم مثيل حساب كبيئة تطوير مكونة ومدارة بالكامل في السحابة. للتطوير والاختبار، يمكنك أيضاً استخدام المثال باعتباره هدف حساب تدريب أو هدف استنتاج. يمكن لمثيل الحساب تشغيل مهام متعددة على التوازي ولديها قائمة انتظار مهام. كبيئة تطوير، لا يمكن مشاركة مثيل الحساب مع مستخدمين آخرين في مساحة العمل الخاصة بك.

كمسؤول، يمكنك كتابة برنامج نصي للتخصيص لاستخدامه لتوفير جميع مثيلات الحوسبة في مساحة العمل وفقا لمتطلباتك. يمكنك تكوين برنامج الإعداد النصي الخاص بك كبرنامج نصي إنشاء، والذي سيتم تشغيله مرة واحدة عند إنشاء مثيل الحساب. أو يمكنك تكوينه كبرنامج نصي لبدء التشغيل، والذي سيتم تشغيله في كل مرة يتم فيها بدء تشغيل مثيل الحساب (بما في ذلك الإنشاء الأولي).

بعض الأمثلة على ما يمكنك القيام به في برنامج نصي للإعداد:

  • تثبيت الحزم والأدوات والبرامج
  • تحميل البيانات
  • إنشاء بيئة كوندا مخصصة وJupyter kernels
  • استنساخ مستودعات git وتعيين تكوين git
  • تعيين وكلاء الشبكة
  • تعيين متغيرات البيئة
  • تثبيت ملحقات JupyterLab

إنشاء البرنامج النصي للإعداد

البرنامج النصي للإعداد هو برنامج نصي shell، والذي يعمل ك rootuser. إنشاء البرنامج النصي أو تحميله في ملفات دفاتر الملاحظات:

  1. سجل الدخول إلى الاستوديو وحدد مساحة العمل الخاصة بك.
  2. على اليسار، حدد ⁧Notebooks⁩.
  3. استخدم أداة إضافة ملفات لإنشاء أو تحميل برنامج إعداد shell النصي. تأكد من أن اسم ملف البرنامج النصي ينتهي بـ ".sh". عند إنشاء ملف جديد، قم أيضا بتغيير نوع الملف إلى bash(.sh).

Create or upload your setup script to Notebooks file in studio

عند تشغيل البرنامج النصي، يكون دليل العمل الحالي للبرنامج النصي هو الدليل حيث تم تحميله. على سبيل المثال، إذا قمت بتحميل البرنامج النصي إلى المستخدمين>المسؤول، فإن موقع البرنامج النصي على مثيل الحساب ودليل العمل الحالي عند تشغيل البرنامج النصي هو /home/azureuser/cloudfiles/code/Users/admin. يمكنك هذا الموقع من استخدام المسارات النسبية في البرنامج النصي.

يمكن الإشارة إلى وسيطات البرنامج النصي في البرنامج النصي على أنها $1 و$2 وما إلى ذلك.

إذا كان البرنامج النصي الخاص بك يفعل شيئا خاصا ب azureuser مثل تثبيت بيئة conda أو Jupyter kernel، فضعه ضمن sudo -u azureuser كتلة مثل هذا:

#!/bin/bash

set -e

# This script installs a pip package in compute instance azureml_py38 environment.

sudo -u azureuser -i <<'EOF'

PACKAGE=numpy
ENVIRONMENT=azureml_py38 
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF

الأمر sudo -u azureuser يغير دليل العمل إلى /home/azureuser. لا يمكنك أيضا الوصول إلى وسيطات البرنامج النصي في هذه الكتلة.

للحصول على أمثلة أخرى من البرامج النصية، راجع azureml-examples.

يمكنك أيضا استخدام متغيرات البيئة التالية في البرنامج النصي الخاص بك:

  • CI_RESOURCE_GROUP
  • CI_WORKSPACE
  • CI_NAME
  • CI_LOCAL_UBUNTU_USER - يشير إلى azureuser

استخدم برنامج إعداد نصيا بالاقتران مع Azure Policy إما لفرض برنامج نصي للإعداد أو افتراضيا لكل إنشاء مثيل حساب. القيمة الافتراضية لمهلة البرنامج النصي للإعداد هي 15 دقيقة. يمكن تغيير الوقت في الاستوديو، أو من خلال قوالب ARM باستخدام المعلمة DURATION. DURATION هو رقم الفاصلة العائمة مع لاحقة اختيارية: 's' للثوان (الافتراضي)، أو 'm' للدقائق، أو 'h' للساعات، أو 'd' للأيام.

استخدام البرنامج النصي في الاستوديو

بمجرد تخزين البرنامج النصي، حدده أثناء إنشاء مثيل الحساب الخاص بك:

  1. سجل الدخول إلى الاستوديو وحدد مساحة العمل الخاصة بك.
  2. على اليسار، حدد حساب.
  3. حدد "+New" لإنشاء مثيل حساب جديد.
  4. املأ النموذج.
  5. في صفحة التطبيقات في النموذج، قم بالتبديل إلى نوع البرنامج النصي الذي تريد استخدامه، أو إنشاء برنامج نصي (تشغيل مرة واحدة عند إنشاء مثيل الحساب) أو البرنامج النصي لبدء التشغيل (تشغيل في كل مرة يتم فيها بدء تشغيل مثيل الحساب).
  6. استعرض للوصول إلى البرنامج النصي shell الذي حفظته. أو قم بتحميل برنامج نصي من جهاز الكمبيوتر الخاص بك.
  7. إضافة وسيطات الأوامر حسب الحاجة.

Screenshot of provision a compute instance with a setup script in the studio.

تلميح

إذا كان تخزين مساحة العمل مرفقا بشبكة ظاهرية، فقد لا تتمكن من الوصول إلى ملف البرنامج النصي للإعداد إلا إذا كنت تقوم بالوصول إلى الاستوديو من داخل الشبكة الظاهرية.

استخدام البرنامج النصي في قالب إدارة الموارد

في قالب إدارة الموارد، أضف setupScripts لاستدعاء البرنامج النصي للإعداد عند توفير مثيل الحساب. على سبيل المثال:

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"workspaceStorage",
        "scriptData":"[parameters('creationScript.location')]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

scriptData يحدد أعلاه موقع البرنامج النصي لإنشاء في مشاركة ملف دفاتر الملاحظات مثل Users/admin/testscript.sh. scriptArguments اختياري أعلاه ويحدد وسيطات البرنامج النصي للإنشاء.

يمكنك بدلا من ذلك توفير البرنامج النصي المضمن لقالب إدارة الموارد. يمكن أن يشير الأمر shell إلى أي تبعيات تم تحميلها إلى مشاركة ملف دفاتر الملاحظات. عند استخدام سلسلة مضمنة، يكون دليل العمل للبرنامج النصي هو /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Users.

على سبيل المثال، حدد سلسلة أوامر مشفرة base64 لـ scriptData:

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"inline",
        "scriptData":"[base64(parameters('inlineCommand'))]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

إعداد سجلات البرنامج النصي

تظهر السجلات من تنفيذ البرنامج النصي للإعداد في مجلد السجلات في صفحة تفاصيل مثيل الحساب. يتم تخزين السجلات مرة أخرى إلى مشاركة ملف دفاتر الملاحظات ضمن المجلد Logs\<compute instance name>. يتم عرض ملف البرنامج النصي ووسيطات الأوامر لمثيل حساب معين في صفحة التفاصيل.