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 resizing
é . 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 paralelas idênticas chamadas myTask1
de 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 seguinte exemplo 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=myJob
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 este 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.