Guia de início rápido: use a CLI do Azure para criar uma conta em lote e executar um trabalho

Este guia de início rápido mostra como começar a usar o Lote do Azure usando comandos e scripts da CLI do Azure para criar e gerenciar recursos do Lote. Você cria uma conta de lote que tem um pool de máquinas virtuais ou nós de computação. Em seguida, crie e execute um trabalho com tarefas executadas nos nós do pool.

Depois de concluir este início rápido, você entende os principais conceitos do serviço Batch e está pronto para usar o Batch com cargas de trabalho mais realistas e de maior escala.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

  • Azure Cloud Shell ou CLI do Azure.

    Você pode executar os comandos da CLI do Azure neste início rápido interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir Cloudshell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e cole-o no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell de dentro do portal do Azure. O Cloud Shell sempre usa a versão mais recente da CLI do Azure.

    Como alternativa, você pode instalar a CLI do Azure localmente para executar os comandos. As etapas neste artigo exigem a CLI do Azure versão 2.0.20 ou posterior. Execute az version para ver sua versão instalada e bibliotecas dependentes, e execute az upgrade para atualizar. Se você usar uma instalação local, entre no Azure usando o comando az login .

Nota

Para algumas regiões e tipos de assinatura, as restrições de cota podem fazer com que a criação de uma conta ou nó em lote falhe ou não seja concluída. Nessa situação, você pode solicitar um aumento de cota sem nenhum custo. Para obter mais informações, consulte Cotas e limites de serviço em lote.

Criar um grupo de recursos

Execute o seguinte comando az group create para criar um grupo de recursos do Azure nomeado qsBatch na região do eastus2 Azure. O grupo de recursos é um contêiner lógico que contém os recursos do Azure para esse início rápido.

az group create \
    --name qsBatch \
    --location eastus2

Criar uma conta de armazenamento

Use o comando az storage account create para criar uma conta de Armazenamento do Azure para vincular à sua conta de lote. Embora esse início rápido não use a conta de armazenamento, a maioria das cargas de trabalho em lote do mundo real usa uma conta de armazenamento vinculada para implantar aplicativos e armazenar dados de entrada e saída.

Execute o seguinte comando para criar uma conta de armazenamento de SKU Standard_LRS nomeada mybatchstorage em seu grupo de recursos:

az storage account create \
    --resource-group qsBatch \
    --name mybatchstorage \
    --location eastus2 \
    --sku Standard_LRS

Criar uma conta do Batch

Execute o seguinte comando az batch account create para criar uma conta de lote nomeada mybatchaccount em seu grupo de recursos e vinculá-la à mybatchstorage conta de armazenamento.

az batch account create \
    --name mybatchaccount \
    --storage-account mybatchstorage \
    --resource-group qsBatch \
    --location eastus2

Entre na nova conta do Batch executando o comando az batch account login . Depois de autenticar sua conta com o Batch, os comandos subsequentes az batch nesta sessão usam esse contexto de conta.

az batch account login \
    --name mybatchaccount \
    --resource-group qsBatch \
    --shared-key-auth

Criar um conjunto de nós de computação

Execute o comando az batch pool create para criar um pool de nós de computação Linux em sua conta Batch. O exemplo a seguir cria um pool chamado myPool que consiste em duas VMs de tamanho Standard_A1_v2 executando o Ubuntu 20.04 LTS OS. Esse tamanho de nó oferece um bom equilíbrio entre desempenho e custo para este exemplo de início rápido.

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

O lote cria o pool imediatamente, mas leva alguns minutos para alocar e iniciar os nós de computação. Para ver o status do pool, use o comando az batch pool show . Este comando mostra todas as propriedades do conjunto e pode consultar as propriedades específicas. O comando a seguir consulta o estado de alocação do pool:

az batch pool show --pool-id myPool \
    --query "allocationState"

Enquanto o Batch aloca e inicia os nós, o pool está no resizing estado. Você pode criar um trabalho e tarefas enquanto o estado do pool ainda resizingestiver . O conjunto está pronto para executar tarefas, quando o estado de atribuição for steady e todos os nós estiverem em execução.

Criar um trabalho

Use o comando az batch job create para criar um trabalho em lote para ser executado em seu pool. Um trabalho em lote é um grupo lógico de uma ou mais tarefas. O trabalho inclui configurações comuns às tarefas, como o pool a ser executado. O exemplo a seguir cria um trabalho chamado myJob que myPool inicialmente não tem tarefas.

az batch job create \
    --id myJob \
    --pool-id myPool

Criar tarefas de trabalho

O Batch fornece várias maneiras de implantar aplicativos e scripts em nós de computação. Use o comando az batch task create para criar tarefas a serem executadas no trabalho. Cada tarefa tem uma linha de comando que especifica um aplicativo ou script.

O script Bash a seguir cria quatro tarefas idênticas e paralelas chamadas myTask1 através do myTask4. A linha de comando da tarefa exibe as variáveis de ambiente Batch no nó de computação e aguarda 90 segundos.

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

A saída do comando mostra as configurações para cada tarefa. O Batch distribui as tarefas pelos nós de computação.

Ver estado da tarefa

Depois de criar a tarefa, o Batch enfileira a tarefa para ser executada no pool. Quando um nó estiver disponível, a tarefa será executada no nó.

Use o comando az batch task show para exibir o status das tarefas em lote. O exemplo a seguir mostra detalhes sobre o status de myTask1:

az batch task show \
    --job-id myJob \
    --task-id myTask1

A saída do comando inclui muitos detalhes. Por exemplo, um exitCode de indica que o comando da 0 tarefa foi concluído com êxito. O nodeId mostra o nome do nó do pool que executou a tarefa.

Ver resultado das tarefas

Use o comando az batch task file list para listar os arquivos que uma tarefa criou em um nó. O comando a seguir lista os arquivos criados myTask1 :

az batch task file list \
    --job-id myJob \
    --task-id myTask1 \
    --output table

Os resultados são semelhantes aos seguintes resultados:

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

O comando az batch task file download baixa os arquivos de saída para um diretório local. Execute o exemplo a seguir para baixar o arquivo stdout.txt :

az batch task file download \
    --job-id myJob \
    --task-id myTask1 \
    --file-path stdout.txt \
    --destination ./stdout.txt

Você pode visualizar o conteúdo do arquivo de saída padrão em um editor de texto. O exemplo a seguir mostra um arquivo stdout.txt típico. A saída padrão dessa tarefa mostra as variáveis de ambiente do Lote do Azure definidas no nó. Você pode fazer referência a essas variáveis de ambiente em suas linhas de comando de tarefa de trabalho em lote e, nos aplicativos e scripts que as linhas de comando executam.

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

Clean up resources (Limpar recursos)

Se quiser continuar com os tutoriais e exemplos do Batch, você pode usar a conta do Batch e a conta de armazenamento vinculado que você criou neste início rápido. Não há cobrança para a conta do Batch em si.

Pools e nós incorrem em cobranças enquanto os nós estão em execução, mesmo que não estejam executando trabalhos. Quando não precisar mais de um pool, use o comando az batch pool delete para excluí-lo. A exclusão de um pool exclui toda a saída de tarefas nos nós e nos próprios nós.

az batch pool delete --pool-id myPool

Quando você não precisar mais de nenhum dos recursos criados para esse início rápido, poderá usar o comando az group delete para excluir o grupo de recursos e todos os seus recursos. Para excluir o grupo de recursos e a conta de armazenamento, a conta de lote, os pools de nós e todos os recursos relacionados, execute o seguinte comando:

az group delete --name qsBatch

Próximos passos

Neste início rápido, você criou uma conta e um pool em lote, criou e executou um trabalho e tarefas em lote e exibiu a saída de tarefas dos nós. Agora que você entende os principais conceitos do serviço Batch, está pronto para usar o Batch com cargas de trabalho mais realistas e de maior escala. Para saber mais acerca do Azure Batch, avance para os tutoriais do Azure Batch.