Настройка вычислительного экземпляра с использованием скрипта

Используйте скрипт установки для автоматической настройки и персонализации вычислительного экземпляра во время подготовки.

Используйте вычислительный экземпляр в качестве полностью настроенной и управляемой среды разработки в облаке. Для разработки и тестирования можно также использовать экземпляр в качестве обучения целевого объекта вычислений или для целевого объекта вывода. Вычислительный экземпляр может параллельно запускать несколько заданий и иметь очередь заданий. В качестве среды разработки вычислительный экземпляр не может использоваться совместно с другими пользователями в рабочей области.

Вы как администратор можете написать скрипт настройки, который будет использоваться для подготовки всех вычислительных экземпляров в рабочей области в соответствии с вашими требованиями. Скрипт установки можно настроить как скрипт создания, который будет выполняться один раз при создании вычислительного экземпляра. Или вы можете настроить его как скрипт запуска, который будет выполняться каждый раз при запуске вычислительного экземпляра (включая начальное создание).

Ниже приведены некоторые примеры того, что можно сделать в скрипте установки.

  • Установка пакетов, средств и программного обеспечения
  • Подключение данных
  • Создание настраиваемой среды Conda и ядер Jupyter
  • Клонирование репозиториев Git и настройка конфигурации Git
  • Настройка сетевых прокси-серверов
  • Настройка переменных среды
  • Установка расширений JupyterLab

Создание скрипта установки

Скрипт установки — это скрипт оболочки, который выполняется как rootuser. Создайте или отправьте скрипт в файлы записных книжек:

  1. Войдите в студию и выберите рабочую область.
  2. Выберите Записные книжки слева.
  3. Используйте средство добавления файлов, чтобы создать или отправить скрипт установки. Имя файла сценария должно заканчиваться на ".sh". При создании нового файла также измените Тип файла на bash (.sh).

Create or upload your setup script to Notebooks file in studio

При запуске скрипта его текущим рабочим каталогом является каталог, в который он был отправлен. Например, если скрипт был отправлен в каталог Users>admin, его расположение на вычислительном экземпляре и текущий рабочий каталог при выполнении — /home/azureuser/cloudfiles/code/Users/admin. Это расположение позволяет использовать в скрипте относительные пути.

К аргументам скрипта в нем можно обращаться как к $1, $2 и т. д.

Если сценарий выполняет что-то конкретное для azureuser, например установка среды conda или ядра Jupyter, поместите его в 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 для принудительного применения сценария установки по умолчанию или для его применения при создании каждого вычислительного экземпляра. Значение по умолчанию для времени ожидания сценария установки составляет 15 минут. Время можно изменить в студии или посредством шаблонов ARM с помощью параметра DURATION. DURATION — это число с плавающей запятой с необязательным суффиксом: 's' для секунд (по умолчанию), 'm' для минут, 'h' для часов или 'd' для дней.

Использование скрипта в студии

После сохранения скрипта укажите его во время создания вычислительного экземпляра:

  1. Войдите в студию и выберите рабочую область.
  2. Слева выберите Вычисление.
  3. Выберите +Создать, чтобы создать новый вычислительный экземпляр.
  4. Заполните форму.
  5. На странице "Приложения" формы переключите тип скрипта, который требуется использовать, скрипт создания (запускайте один раз при создании вычислительного экземпляра) или скрипт запуска (запускайте каждый раз при запуске вычислительного экземпляра).
  6. Перейдите к сохраненному скрипту оболочки. Или отправьте скрипт с компьютера.
  7. При необходимости добавьте аргументы команды.

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

Совет

Если к виртуальной сети подключено хранилище рабочей области, то доступ к файлу сценария установки может быть невозможен, если только вы не обращаетесь к среде Studio из виртуальной сети.

Использование скрипта в шаблоне Resource Manager

В шаблоне Resource Manager добавьте setupScripts, чтобы вызвать скрипт установки при подготовке вычислительного экземпляра. Например:

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

scriptData выше обозначает расположение скрипта создания в общей папке записных книжек, например Users/admin/testscript.sh. scriptArguments является необязательным выше и задает аргументы для скрипта создания.

Вместо этого можно задать скрипт для шаблона Resource Manager в исходном коде. Команда оболочки может ссылаться на любые зависимости, отправленные в общую папку записных книжек. При использовании встроенной строки в качестве рабочей папки для скрипта используется /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Users.

Например, укажите для scriptData строку команды в кодировке Base64:

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

Журналы скрипта установки

Журналы выполнения скрипта установки находятся в папке журналов на странице сведений о вычислительном экземпляре. Журналы сохраняются в общую папку записных книжек в папке Logs\<compute instance name>. На странице сведений показаны файл скрипта и аргументы команды для определенного вычислительного экземпляра.