Exercício – Criar uma tarefa do Azure Batch na CLI para executar a tarefa paralela

Concluído

A CLI do Azure permite-lhe criar e implementar recursos do Azure Batch a partir da linha de comandos.

Como o arquiteto de soluções da organização sem fins lucrativos, quer começar a criar uma solução do Batch para o cenário de OCR do Azure. Como primeiro passo, vai testar a criação de uma conta do Batch, de um conjunto de nós de trabalho, de uma tarefa e de tarefas com a CLI do Azure.

A CLI do Azure é a linha de comandos de várias plataformas para a criação e a gestão dos recursos do Azure. Utiliza uma sintaxe az noun verb --properties consistente. Os comandos da CLI para gerir o Azure Batch seguem esta convenção, pelo que todos os comandos assumem a forma de az batch verb --properties.

Importante

Os exercícios neste módulo são opcionais. Para concluir os exercícios, você precisará de sua própria assinatura do Azure.

Criar recursos do Azure Batch

Em primeiro lugar, vai criar a conta do Azure Batch e o conjunto de nós de trabalho para o seu cenário de teste. Em seguida, vai criar uma tarefa do Batch e tarefas para serem executadas no conjunto.

Criar um novo grupo de recursos

  1. Inicie sessão no Portal do Azure.

  2. Selecione Grupos de recursos no menu à esquerda.

  3. Selecione + Criar.

  4. Preencha o formulário para criar um novo grupo de recursos para o exercício e tome nota do nome.

Criar a conta do Azure Batch

  1. No portal, abra o Cloud Shell selecionando o ícone do Cloud Shell (>_) no menu superior. Use o menu suspenso na parte superior da janela do terminal para se certificar de que você está no Bash.

  2. Crie variáveis de ambiente para o grupo de recursos e o recurso de lote.

    RESOURCE_GROUP=<your resource group>
    BATCH_ACCOUNT=batchaccount$RANDOM
    
  3. Execute o seguinte comando no Cloud Shell para criar uma conta do Azure Batch. Selecione uma das localizações a seguir:

    westeurope,eastus,eastus2,westus,northcentralus,brazilsouth,northeurope,centralus,eastasia,japaneast,australiasoutheast,japanwest,koreasouth,koreacentral,southeastasia,southcentralus,australiaeast,southindia,centralindia,westindia,canadacentral,canadaeast,uksouth,ukwest,westcentralus,westus2,francecentral,southafricanorth
    
    az batch account create \
     --name $BATCH_ACCOUNT \
     --resource-group $RESOURCE_GROUP \
     --location <choose a location from the preceding list>
    
  4. Execute o seguinte comando para iniciar sessão na sua conta do Azure Batch:

    az batch account login \
     --name $BATCH_ACCOUNT \
     --resource-group $RESOURCE_GROUP \
     --shared-key-auth
    
  5. Crie um pool de três VMs Standard A1 v2 executando o Ubuntu 18.04:

    az batch pool create \
     --id mypool --vm-size Standard_A1_v2 \
     --target-dedicated-nodes 3 \
     --image canonical:ubuntuserver:18.04-LTS \
     --node-agent-sku-id "batch.node.ubuntu 18.04"  
    
  6. Execute o seguinte comando para determinar periodicamente se os nós estão prontos:

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

    Quando essa consulta mostra que os nós estão "estáveis", eles estão prontos para funcionar. Embora apareçam como "redimensionamento", na verdade estão sendo provisionados. Pode utilizar a tecla de seta para cima para repetir o comando mais recente no Cloud Shell, caso pretenda consultar o estado dos nós mais de uma vez.

  7. Execute o seguinte comando para criar um trabalho em lote, que é um agrupamento lógico para todas as tarefas que serão executadas em seus nós:

    az batch job create \
     --id myjob \
     --pool-id mypool
    
  8. Execute o seguinte comando para criar as tarefas do Batch:

    for i in {1..10}
    do
       az batch task create \
        --task-id mytask$i \
        --job-id myjob \
        --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'"
    done
    

    Este ciclo cria várias tarefas do Batch numeradas, cada uma das quais produz informações sobre o ID da tarefa e o ID do nó envolvido. Ao examinar atentamente o que acontece aqui, pode ver algumas características da forma como o Azure Batch funciona. As tarefas são automaticamente agendadas para nós com capacidade disponível. No entanto, as variáveis de ambiente que estamos usando (AZ_BATCH_TASK_ID e AZ_BATCH_NODE_ID), para mostrar informações sobre qual tarefa está sendo executada em qual nó, só estão disponíveis no contexto do usuário da tarefa, uma conta padrão criada em cada nó para executar tarefas. Além disso, o argumento não é executado diretamente sob um shell, então você precisa invocar explicitamente o --command-line shell usando /bin/bash -c para usar comandos como printenv e grep.

    Este ciclo conclui a implementação da tarefa do Azure Batch. Deixaremos a conta do Lote do Azure e o pool de nós de trabalho no local para uso no próximo módulo, mas excluiremos o trabalho em lote. Uma vez que a tarefa do Batch age como um contentor para as respetivas tarefas do Batch, estas tarefas também são eliminadas.

  9. Execute o seguinte comando no Cloud Shell para eliminar a tarefa do Batch:

    az batch job delete --job-id myjob -y