Exemplo de CLI: executar um trabalho e tarefas com o Lote do Azure
Esse script cria um trabalho no Lote e adiciona uma série de tarefas ao trabalho. Ele também demonstra como monitorar um trabalho e suas tarefas.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para saber mais, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Exemplo de script
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.
Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.
Entrar no Azure
O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar usando uma assinatura diferente, substituindo <Subscription ID>
pela ID da Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa
Criar uma conta do Lote no modo de serviço do Lote
# Run a job and tasks with Azure Batch
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
[[ "$RESOURCE_GROUP" == '' ]] && resourceGroup="msdocs-batch-rg-$randomIdentifier" || resourceGroup="${RESOURCE_GROUP}"
tag="run-job"
storageAccount="msdocsstorage$randomIdentifier"
batchAccount="msdocsbatch$randomIdentifier"
# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag
# Create a general-purpose storage account in your resource group.
echo "Creating $storageAccount"
az storage account create --resource-group $resourceGroup --name $storageAccount --location "$location" --sku Standard_LRS
# Create a Batch account.
echo "Creating $batchAccount"
az batch account create --name $batchAccount --storage-account $storageAccount --resource-group $resourceGroup --location "$location"
# Authenticate against the account directly for further CLI interaction.
az batch account login --name $batchAccount --resource-group $resourceGroup --shared-key-auth
# Create a new Linux pool with a virtual machine configuration.
az batch pool create --id mypool --vm-size Standard_A1 --target-dedicated 2 --image canonical:ubuntuserver:18_04-lts-gen2 --node-agent-sku-id "batch.node.ubuntu 18.04"
# Create a new job to encapsulate the tasks that are added.
az batch job create --id myjob --pool-id mypool
# Add tasks to the job. Here the task is a basic shell command.
az batch task create --job-id myjob --task-id task1 --command-line "/bin/bash -c 'printenv AZ_BATCH_TASK_WORKING_DIR'"
Para adicionar várias tarefas ao mesmo tempo
Para adicionar várias tarefas ao mesmo tempo, especifique as tarefas em um arquivo JSON e passe-as para o comando. Para o formato, consulte https://github.com/Azure/azure-docs-cli-python-samples/blob/master/batch/run-job/tasks.json. Forneça o caminho absoluto para o arquivo JSON. Para ver um exemplo de arquivo JSON, confira https://github.com/Azure-Samples/azure-cli-samples/blob/master/batch/run-job/tasks.json.
az batch task create \
--job-id myjob \
--json-file tasks.json
Para atualizar o trabalho
Atualize o trabalho para que ele seja marcado automaticamente como concluído depois que todas as tarefas forem concluídas.
az batch job set \
--job-id myjob \
--on-all-tasks-complete terminatejob
Para monitorar o status do trabalho
az batch job show --job-id myjob
Para monitorar o status de uma tarefa
az batch task show \
--job-id myjob \
--task-id task1
Limpar os recursos
Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.
az group delete --name $resourceGroup
Exemplo de referência
Este script usa os comandos a seguir. Cada comando na tabela redireciona para a documentação específica do comando.
Comando | Observações |
---|---|
az group create | Cria um grupo de recursos no qual todos os recursos são armazenados. |
az batch account create | Cria a conta do Lote. |
az batch account login | Autentica na conta do Lote especificada para interação adicional com a CLI. |
az batch pool create | Cria um pool de nós de computação. |
az batch job create | Cria um trabalho do Lote. |
az batch task create | Adiciona uma tarefa ao trabalho do Lote especificado. |
az batch job set | Atualiza as propriedades de um trabalho do Lote. |
az batch job show | Recupera detalhes de um trabalho especificado do Lote. |
az batch task show | Recupera os detalhes de uma tarefa do trabalho do Lote especificado. |
az group delete | Exclui um grupo de recursos, incluindo todos os recursos aninhados. |
Próximas etapas
Para saber mais sobre a CLI do Azure, veja a documentação da CLI do Azure.