Краткое руководство. Создание учетной записи пакетной службы и запуск задания с помощью Azure CLI
В этом кратком руководстве показано, как приступить к работе с пакетная служба Azure с помощью команд и сценариев Azure CLI для создания ресурсов пакетной службы и управления ими. Вы создаете учетную запись пакетной службы с пулом виртуальных машин или вычислительных узлов. Затем вы создаете и запускаете задание с задачами, которые выполняются на узлах пула.
После работы с этим кратким руководством вы узнаете основные понятия пакетной службы и готовы использовать пакетную службу с более реалистичными, большими масштабируемыми рабочими нагрузками.
Необходимые компоненты
-
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Azure Cloud Shell или Azure CLI
В этом кратком руководстве вы можете выполнять команды Azure CLI в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloudshell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код и вставить его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure. Cloud Shell всегда использует последнюю версию Azure CLI.
Кроме того, вы можете установить Azure CLI локально для выполнения команд. Действия, описанные в этой статье, требуют Azure CLI версии 2.0.20 или более поздней. Запустите az version, чтобы просмотреть установленную версию и зависимые библиотеки, а затем запустите az upgrade для обновления. При использовании локальной установки войдите в Azure с помощью команды az login .
Примечание.
Для некоторых регионов и типов подписок ограничения квот могут привести к сбою создания учетной записи пакетной службы или узла. В этой ситуации можно запросить увеличение квоты без оплаты. Дополнительные сведения см. в разделе о квотах и ограничениях пакетной службы.
Создание или изменение группы ресурсов
Выполните следующую команду az group create , чтобы создать группу ресурсов Azure с именем qsBatch
в регионе eastus2
Azure. Группа ресурсов — это логический контейнер, содержащий ресурсы Azure для этого краткого руководства.
az group create \
--name qsBatch \
--location eastus2
Создание учетной записи хранилища
Используйте команду az storage account create, чтобы создать учетную запись служба хранилища Azure, чтобы связаться с учетной записью пакетной службы. Хотя в этом кратком руководстве не используется учетная запись хранения, большинство реальных рабочих нагрузок пакетной службы используют связанную учетную запись хранения для развертывания приложений и хранения входных и выходных данных.
Выполните следующую команду, чтобы создать учетную запись хранения SKU Standard_LRS с именем mybatchstorage
в группе ресурсов:
az storage account create \
--resource-group qsBatch \
--name mybatchstorage \
--location eastus2 \
--sku Standard_LRS
Создание учетной записи пакетной службы
Выполните следующую команду az batch account create , чтобы создать учетную запись пакетной службы с именем mybatchaccount
в группе ресурсов и связать ее с учетной записью mybatchstorage
хранения.
az batch account create \
--name mybatchaccount \
--storage-account mybatchstorage \
--resource-group qsBatch \
--location eastus2
Войдите в новую учетную запись пакетной службы, выполнив команду az batch account login . После проверки подлинности учетной записи с помощью пакетной службы последующие az batch
команды в этом сеансе используют этот контекст учетной записи.
az batch account login \
--name mybatchaccount \
--resource-group qsBatch \
--shared-key-auth
Создание пула вычислительных узлов
Выполните команду az batch pool create, чтобы создать пул вычислительных узлов Linux в учетной записи пакетной службы. В следующем примере создается пул с именем myPool
, состоящий из двух виртуальных машин размера Standard_A1_v2 под управлением ОС Ubuntu 20.04 LTS. Этот размер узла обеспечивает хороший баланс производительности и затрат для этого примера краткого руководства.
az batch pool create \
--id myPool \
--image canonical:0001-com-ubuntu-server-focal:20_04-lts \
--node-agent-sku-id "batch.node.ubuntu 20.04" \
--target-dedicated-nodes 2 \
--vm-size Standard_A1_v2
Пакетная служба немедленно создает пул, но занимает несколько минут, чтобы выделить и запустить вычислительные узлы. Чтобы просмотреть состояние пула, используйте команду az batch pool show . Эта команда отображает все свойства пула, и вы можете запрашивать определенные свойства. Следующая команда запрашивает состояние выделения пула:
az batch pool show --pool-id myPool \
--query "allocationState"
Хотя пакетная служба выделяет и запускает узлы, пул находится в resizing
состоянии. Вы можете создать задание и задачи, пока состояние пула по-прежнему resizing
. Пул готов к выполнению задач, если состояние распределения — steady
и все узлы работают.
Создание задания
Используйте команду az batch job create, чтобы создать пакетное задание для запуска в пуле. Пакетное задание — это логическая группа, состоящая из одной или нескольких задач. Задание включает параметры, общие для задач, таких как пул для запуска. В следующем примере создается задание, вызываемое myJob
изначально myPool
, не имеет задач.
az batch job create \
--id myJob \
--pool-id myPool
Создание задач задания
В пакетной службе предусмотрено несколько способов для развертывания приложений и скриптов на вычислительных узлах. Используйте команду az batch task create, чтобы создать задачи для выполнения в задании. Каждая задача имеет командную строку, указывающую приложение или скрипт.
Следующий скрипт Bash создает четыре идентичные параллельные задачи, вызываемые myTask1
через myTask4
. В командной строке задачи отображаются переменные среды пакетной службы на вычислительном узле, а затем ожидается 90 секунд.
for i in {1..4}
do
az batch task create \
--task-id myTask$i \
--job-id myJob \
--command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done
В выходных данных команды показаны параметры для каждой задачи. Пакетная служба распределяет задачи по вычислительным узлам.
Представление состояния задачи
После создания задачи пакетная служба помещает задачу в очередь для запуска в пуле. После того как узел будет доступен, задача выполняется на узле.
Используйте команду az batch task show для просмотра состояния задач Batch. В следующем примере показаны сведения о состоянии myTask1
:
az batch task show \
--job-id myJob \
--task-id myTask1
Выходные данные команды содержат множество сведений. Например, указывает exitCode
0
, что команда задачи успешно завершена. Отображается nodeId
имя узла пула, выполняющего задачу.
Просмотр выходных данных задачи
Используйте команду az batch task list, чтобы перечислить файлы, созданные на узле. Следующая команда содержит файлы, myTask1
созданные:
az batch task file list \
--job-id myJob \
--task-id myTask1 \
--output table
Результаты похожи на следующие выходные данные:
Name URL Is Directory Content Length
---------- ---------------------------------------------------------------------------------------- -------------- ----------------
stdout.txt https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stdout.txt False 695
certs https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/certs True
wd https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/wd True
stderr.txt https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stderr.txt False 0
Команда az batch task download скачивает выходные файлы в локальный каталог. Выполните следующий пример, чтобы скачать файл stdout.txt :
az batch task file download \
--job-id myJob \
--task-id myTask1 \
--file-path stdout.txt \
--destination ./stdout.txt
Содержимое стандартного выходного файла можно просмотреть в текстовом редакторе. В следующем примере показан типичный файл stdout.txt . Стандартные выходные данные этой задачи показывают переменные среды пакетная служба Azure, заданные на узле. Эти переменные среды можно ссылаться на командные строки задачи пакетной службы, а также в приложениях и сценариях, выполняемых командными строками.
AZ_BATCH_TASK_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1
AZ_BATCH_NODE_STARTUP_DIR=/mnt/batch/tasks/startup
AZ_BATCH_CERTIFICATES_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/certs
AZ_BATCH_ACCOUNT_URL=https://mybatchaccount.eastus2.batch.azure.com/
AZ_BATCH_TASK_WORKING_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/wd
AZ_BATCH_NODE_SHARED_DIR=/mnt/batch/tasks/shared
AZ_BATCH_TASK_USER=_azbatch
AZ_BATCH_NODE_ROOT_DIR=/mnt/batch/tasks
AZ_BATCH_JOB_ID=myJobl
AZ_BATCH_NODE_IS_DEDICATED=true
AZ_BATCH_NODE_ID=tvm-257509324_2-20180703t215033z
AZ_BATCH_POOL_ID=myPool
AZ_BATCH_TASK_ID=myTask1
AZ_BATCH_ACCOUNT_NAME=mybatchaccount
AZ_BATCH_TASK_USER_IDENTITY=PoolNonAdmin
Очистка ресурсов
Если вы хотите продолжить работу с учебниками и примерами пакетной службы, можно использовать учетную запись пакетной службы и связанную учетную запись хранения, созданную в этом кратком руководстве. Плата за учетную запись пакетной службы не взимается.
Пулы и узлы несут расходы во время выполнения узлов, даже если они не выполняются задания. Если пул больше не нужен, используйте команду az batch pool delete , чтобы удалить ее. При удалении пула удаляются все выходные данные задачи на узлах и сами узлы.
az batch pool delete --pool-id myPool
Если вам больше не нужны какие-либо ресурсы, созданные для этого краткого руководства, можно использовать команду az group delete для удаления группы ресурсов и всех его ресурсов. Чтобы удалить группу ресурсов и учетную запись хранения, учетную запись пакетной службы, пулы узлов и все связанные ресурсы, выполните следующую команду:
az group delete --name qsBatch
Следующие шаги
В этом кратком руководстве вы создали учетную запись пакетной службы и пул, создали и выполнили задание пакетной службы и задачи, а также просматривали выходные данные задач с узлов. Теперь, когда вы понимаете основные понятия пакетной службы, вы готовы использовать пакетную службу с более реалистичными, большими масштабируемыми рабочими нагрузками. Чтобы узнать больше о пакетной службе Azure, изучите следующие руководства.