Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 que são 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 conta do Azure, crie uma conta gratuita 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 apropriado.
Nota
Para algumas regiões e tipos de assinatura, as restrições de cota podem fazer com que a criação de contas ou nós em Batch 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 do serviço Batch.
Criar um grupo de recursos
Execute o seguinte comando az group create para criar um grupo de recursos no Azure. O grupo de recursos é um contêiner lógico que contém os recursos do Azure para esse início rápido.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"
az group create \
--name $RESOURCE_GROUP \
--location $REGION
Resultados:
{
"id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
"location": "eastus2",
"managedBy": null,
"name": "qsBatchxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Criar uma conta de armazenamento
Utilize o comando az storage account create para criar uma conta de Armazenamento do Azure a fim de associar à sua conta de Batch. 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 no seu grupo de recursos:
export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"
az storage account create \
--resource-group $RESOURCE_GROUP \
--name $STORAGE_ACCOUNT \
--location $REGION \
--sku Standard_LRS
Criar uma conta do Batch
Execute o seguinte comando az batch account create para criar uma conta Batch no seu grupo de recursos e associá-la à conta de armazenamento.
export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"
az batch account create \
--name $BATCH_ACCOUNT \
--storage-account $STORAGE_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--location $REGION
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 $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--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 que consiste em duas VMs de tamanho Standard_A1_v2 executando o Ubuntu 20.04 LTS OS. Este tamanho de nó estabelece um bom equilíbrio de desempenho e custo para este exemplo de arranque rápido.
export POOL_ID="myPool$RANDOM_SUFFIX"
az batch pool create \
--id $POOL_ID \
--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 serviço Batch cria o pool imediatamente, mas leva alguns minutos para que os nós de computação sejam alocados e iniciados. Para ver o estado do pool, utilize o comando az batch pool show. Este comando mostra todas as propriedades do pool e permite consultar por propriedades específicas. O comando a seguir consulta o estado de alocação do pool:
az batch pool show --pool-id $POOL_ID \
--query "{allocationState: allocationState}"
Resultados:
{
"allocationState": "resizing"
}
Enquanto o Batch aloca e inicia os nós, o pool está no estado resizing. Você pode criar um trabalho e tarefas enquanto o estado do pool ainda está resizing. O pool está pronto para executar tarefas quando o estado de alocaçã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 Batch para ser executado no 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 no qual executar. O exemplo a seguir cria um trabalho que inicialmente não tem tarefas.
export JOB_ID="myJob$RANDOM_SUFFIX"
az batch job create \
--id $JOB_ID \
--pool-id $POOL_ID
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 até 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 $JOB_ID \
--command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done
O Batch distribui as tarefas pelos nós de computação.
Ver estado da tarefa
Depois de criar as tarefas, o Batch coloca-as em fila para serem executadas no pool. Assim que um nó estiver disponível, uma tarefa será executada nele.
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 $JOB_ID \
--task-id myTask1
A saída do comando inclui muitos detalhes. Por exemplo, um exitCode de 0 indica que o comando da 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 ficheiros que uma tarefa criou num nó. O comando a seguir lista os arquivos criados myTask1 :
# Wait for task to complete before downloading output
echo "Waiting for task to complete..."
while true; do
STATUS=$(az batch task show --job-id $JOB_ID --task-id myTask1 --query "state" -o tsv)
if [ "$STATUS" == "running" ]; then
break
fi
sleep 10
done
az batch task file list --job-id $JOB_ID --task-id myTask1 --output table
Os resultados são semelhantes aos seguintes resultados:
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 $JOB_ID \
--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 normal desta tarefa mostra as variáveis de ambiente do Azure Batch 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
Próximos passos
Neste guia de início rápido, criou uma conta e um pool do Batch, criou e executou um trabalho e tarefas do Batch, e visualizou a saída das tarefas a partir 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.