Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este 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 do Lote que tenha um pool de máquinas virtuais ou nós de computação. Em seguida, você cria e executa um trabalho com tarefas executadas nos nós do pool.
Depois de concluir este início rápido, você entenderá os principais conceitos do serviço Lote e estará pronto para experimentá-lo com cargas de trabalho mais realistas em maior escala.
Pré-requisitos
-
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Azure Cloud Shell ou CLI do Azure.
As etapas desse início rápido executam os comandos da CLI do Azure interativamente no Azure Cloud Shell. Para executar os comandos no Cloud Shell, selecione Abrir o CloudShell no canto superior direito de um bloco de código. Selecione Copiar para copiar o código e colá-lo no Cloud Shell para executá-lo. Você também pode executar o Cloud Shell no portal do Azure. O Azure Cloud Shell sempre usa a última versão da CLI do Azure.
Você também pode instalar a CLI do Azure localmente para executar os comandos. As etapas desse artigo exigem a CLI do Azure versão 2.0.20 ou posterior. Execute az version para localizar a versão instalada e as bibliotecas dependentes e execute az upgrade para atualizar. Se você usar uma instalação local, entre no Azure usando o comando apropriado.
Observação
Para algumas regiões e tipos de assinatura, as restrições de cota podem fazer com que a criação da conta ou nó do Lote falhe ou não seja concluída. Nessa situação, você pode solicitar um aumento de cota sem custo. Para saber mais, confira Limites e cotas do serviço de Lote.
Criar um grupo de recursos
Execute o comando az group create a seguir para criar um grupo de recursos do Azure. O grupo de recursos é um contêiner lógico que contém os recursos do Azure para este 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
Use o comando az storage account create para criar uma conta de Armazenamento do Microsoft Azure para vincular à sua conta do Lote. Embora este início rápido não use a conta de armazenamento, a maioria das cargas de trabalho do Lote num cenário de vida 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 em 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 comando az batch account create a seguir para criar uma conta do Lote em seu grupo de recursos e vinculá-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 Lote executando o comando az batch account login . Depois de autenticar sua conta com o Lote, os comandos az batch subsequentes nesta sessão usam esse contexto de conta.
az batch account login \
--name $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--shared-key-auth
Criar um pool de nós de computação
Execute o comando az batch pool create para criar um pool de nós de computação do Linux em sua conta do Lote. O exemplo a seguir cria um pool que consiste em duas VMs de tamanho Standard_A1_v2 executando o sistema operacional Ubuntu 20.04 LTS. O tamanho de nó sugerido oferece um bom equilíbrio entre desempenho e custo para este exemplo de início 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 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, execute o comando az batch pool show. Este comando mostra todas as propriedades do pool, e você pode consultar propriedades específicas. A comando a seguir faz uma consulta sobre o estado de alocação do pool:
az batch pool show --pool-id $POOL_ID \
--query "{allocationState: allocationState}"
Resultados:
{
"allocationState": "resizing"
}
Enquanto o Lote aloca e inicia os nós, o pool está no estado resizing. Você pode criar um trabalho e tarefas enquanto o estado do pool for ainda de resizing. O pool está pronto para executar tarefas quando o estado de alocação é steady e todos os nós estão sendo executados.
Criar um trabalho
Use o comando az batch job create para criar um trabalho do Lote para ser executado no seu pool. Um Trabalho em lotes é um grupo lógico de uma ou mais tarefas. O trabalho inclui configurações comuns às tarefas, como o pool onde elas devem ser executadas. 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 Lote fornece várias maneiras para implantar aplicativos e scripts em nós de computação. Use o comando az batch task create para criar algumas tarefas e executar o 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. Cada tarefa executa uma linha de comando para exibir as variáveis de ambiente do Lote em um nó de computação e, em seguida, 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 Lote distribui as tarefas para os nós de computação.
Exibir status da tarefa
Depois de criar uma tarefa, o Lote a enfileira para ser executada no pool. Depois que um nó estiver disponível, a tarefa será executada no nó.
Use o comando az batch task show para exibir o status das tarefas do Lote. A imagem de exemplo a seguir mostra detalhes sobre o status da 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 a linha de comando da tarefa foi concluída com êxito. O nodeId mostra o nome do nó do pool que executou a tarefa.
Exibir saída da tarefa
Use o comando az batch task file list para listar os arquivos que uma tarefa criou em um nó. O comando abaixo lista os arquivos criados por 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 à seguinte saída:
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 arquivo 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 exibir o conteúdo de um 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 consultar essas variáveis de ambiente em suas linhas de comando da tarefa de um trabalho do Lote e, nos aplicativos e scripts, as linhas de comando são executadas.
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óximas etapas
Neste início rápido, você criou uma conta e um pool do Lote, criou e executou um trabalho e tarefas do Lote e exibiu a saída da tarefa dos nós. Agora que você conhece os conceitos principais do serviço do Lote, está pronto para usá-lo com cargas de trabalho mais realistas em maior escala. Para saber mais sobre o Lote do Azure, prossiga para os tutoriais do Lote do Azure.