Avvio rapido: Usare l'interfaccia della riga di comando di Azure per creare un account Batch ed eseguire un processo

Questa guida introduttiva illustra come iniziare a usare Azure Batch usando i comandi e gli script dell'interfaccia della riga di comando di Azure per creare e gestire le risorse di Batch. Si crea un account Batch con un pool di macchine virtuali o nodi di calcolo. Si crea ed esegue quindi un processo con attività eseguite nei nodi del pool.

Dopo aver completato questa guida introduttiva, si conoscono i concetti chiave del servizio Batch e si è pronti per l'uso di Batch con carichi di lavoro su larga scala più realistici.

Prerequisiti

Nota

Per alcune aree e tipi di sottoscrizione, le restrizioni di quota potrebbero causare l'esito negativo o negativo della creazione di un account Batch o di un nodo. In questo caso, è possibile richiedere un aumento della quota senza alcun addebito. Per altre informazioni, vedere Quote e limiti del servizio Batch.

Creare un gruppo di risorse

Eseguire il comando az group create seguente per creare un gruppo di risorse di Azure denominato qsBatch nell'area eastus2 di Azure. Il gruppo di risorse è un contenitore logico che contiene le risorse di Azure per questa guida introduttiva.

az group create \
    --name qsBatch \
    --location eastus2

Creare un account di archiviazione

Usare il comando az storage account create per creare un account Archiviazione di Azure da collegare all'account Batch. Anche se questa guida introduttiva non usa l'account di archiviazione, la maggior parte dei carichi di lavoro Batch reali usa un account di archiviazione collegato per distribuire applicazioni e archiviare i dati di input e output.

Eseguire il comando seguente per creare un account di archiviazione SKU Standard_LRS denominato mybatchstorage nel gruppo di risorse:

az storage account create \
    --resource-group qsBatch \
    --name mybatchstorage \
    --location eastus2 \
    --sku Standard_LRS

Creare un account Batch

Eseguire il comando az batch account create seguente per creare un account Batch denominato mybatchaccount nel gruppo di risorse e collegarlo all'account mybatchstorage di archiviazione.

az batch account create \
    --name mybatchaccount \
    --storage-account mybatchstorage \
    --resource-group qsBatch \
    --location eastus2

Accedere al nuovo account Batch eseguendo il comando az batch account login . Dopo aver autenticato l'account con Batch, i comandi successivi az batch in questa sessione usano questo contesto dell'account.

az batch account login \
    --name mybatchaccount \
    --resource-group qsBatch \
    --shared-key-auth

Creare un pool di nodi di calcolo

Eseguire il comando az batch pool create per creare un pool di nodi di calcolo Linux nell'account Batch. L'esempio seguente crea un pool denominato myPool costituito da due macchine virtuali di dimensioni Standard_A1_v2 che eseguono Ubuntu 20.04 LTS OS. Questa dimensione del nodo offre un buon equilibrio tra prestazioni e costi per questo esempio di avvio rapido.

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

Batch crea immediatamente il pool, ma richiede alcuni minuti per allocare e avviare i nodi di calcolo. Per visualizzare lo stato del pool, usare il comando az batch pool show . Questo comando mostra tutte le proprietà del pool ed è possibile eseguire query per le proprietà specifiche. Il comando seguente esegue query sullo stato di allocazione del pool:

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

Mentre Batch alloca e avvia i nodi, il pool si trova nello resizing stato . È possibile creare un processo e attività mentre lo stato del pool è ancora resizing. Il pool è pronto per l'esecuzione di attività quando lo stato di allocazione è steady e tutti i nodi sono in esecuzione.

Creare un processo

Usare il comando az batch job create per creare un processo Batch da eseguire nel pool. Un processo Batch è un gruppo logico di una o più attività. Il processo include impostazioni comuni alle attività, ad esempio il pool su cui eseguire. Nell'esempio seguente viene creato un processo chiamato myJob in myPool che inizialmente non ha attività.

az batch job create \
    --id myJob \
    --pool-id myPool

Creare attività di processo

Batch offre diversi modi per distribuire app e script nei nodi di calcolo. Usare il comando az batch task create per creare attività da eseguire nel processo. Ogni attività ha una riga di comando che specifica un'app o uno script.

Lo script Bash seguente crea quattro attività parallele identiche chiamate myTask1 tramite myTask4. La riga di comando dell'attività visualizza le variabili di ambiente Batch nel nodo di calcolo e quindi attende 90 secondi.

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

L'output del comando mostra le impostazioni per ogni attività. Batch distribuisce le attività nei nodi di calcolo.

Visualizzare lo stato dell'attività

Dopo aver creato l'attività, Batch accoda l'attività da eseguire nel pool. Quando un nodo è disponibile, l'attività viene eseguita nel nodo.

Usare il comando az batch task show per visualizzare lo stato delle attività di Batch. L'esempio seguente mostra i dettagli sullo stato di myTask1:

az batch task show \
    --job-id myJob \
    --task-id myTask1

L'output del comando include molti dettagli. Ad esempio, un valore exitCode di indica che il comando dell'attività 0 è stato completato correttamente. nodeId Mostra il nome del nodo del pool che ha eseguito l'attività.

Visualizzare l'output dell'attività

Usare il comando az batch task file list per elencare i file creati in un nodo. Il comando seguente elenca i file creati myTask1 :

az batch task file list \
    --job-id myJob \
    --task-id myTask1 \
    --output table

I risultati sono simili all'output seguente:

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

Il comando az batch task file download scarica i file di output in una directory locale. Eseguire l'esempio seguente per scaricare il file stdout.txt :

az batch task file download \
    --job-id myJob \
    --task-id myTask1 \
    --file-path stdout.txt \
    --destination ./stdout.txt

È possibile visualizzare il contenuto del file di output standard in un editor di testo. L'esempio seguente mostra un tipico file stdout.txt . L'output standard di questa attività mostra le variabili di ambiente di Azure Batch impostate nel nodo. È possibile fare riferimento a queste variabili di ambiente nelle righe di comando dell'attività processo batch e nelle app e negli script vengono eseguite le righe di comando.

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=myJobl
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

Pulire le risorse

Per continuare con le esercitazioni e gli esempi di Batch, è possibile usare l'account Batch e l'account di archiviazione collegato creati in questa guida introduttiva. Non sono previsti addebiti per l'account Batch stesso.

I pool e i nodi comportano addebiti durante l'esecuzione dei nodi, anche se non eseguono processi. Quando non è più necessario un pool, usare il comando az batch pool delete per eliminarlo. L'eliminazione di un pool elimina tutti gli output delle attività nei nodi e i nodi stessi.

az batch pool delete --pool-id myPool

Quando non sono più necessarie risorse create per questa guida introduttiva, è possibile usare il comando az group delete per eliminare il gruppo di risorse e tutte le relative risorse. Per eliminare il gruppo di risorse e l'account di archiviazione, l'account Batch, i pool di nodi e tutte le risorse correlate, eseguire il comando seguente:

az group delete --name qsBatch

Passaggi successivi

In questa guida introduttiva è stato creato un account Batch e un pool, è stato creato ed eseguito un processo e attività Batch ed è stato visualizzato l'output delle attività dai nodi. Dopo aver compreso i concetti chiave del servizio Batch, è possibile usare Batch con carichi di lavoro più realistici e su larga scala. Per altre informazioni su Azure Batch, passare alle esercitazioni di Azure Batch.