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 questo argomento di avvio rapido, si conoscono i concetti chiave del servizio Batch e si è pronti per usare Batch con carichi di lavoro su larga scala più realistici e su larga scala.
Prerequisiti
-
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Azure Cloud Shell o interfaccia della riga di comando di Azure.
È possibile eseguire i comandi dell'interfaccia della riga di comando di Azure in questa guida introduttiva in modo interattivo in Azure Cloud Shell. Per eseguire i comandi in Cloud Shell, selezionare Apri Cloud Shell nell'angolo superiore destro di un blocco di codice. Selezionare Copia per copiare il codice e incollarlo in Cloud Shell per eseguirlo. È anche possibile eseguire Cloud Shell dal portale di Azure. Cloud Shell usa sempre la versione più recente dell'interfaccia della riga di comando di Azure.
In alternativa, è possibile installare l'interfaccia della riga di comando di Azure in locale per eseguire i comandi. I passaggi descritti in questo articolo richiedono l'interfaccia della riga di comando di Azure versione 2.0.20 o successiva. Eseguire az version per visualizzare la versione installata e le librerie dipendenti ed eseguire az upgrade per eseguire l'aggiornamento. Se si usa un'installazione locale, accedere ad Azure con il comando az login.
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. Nell'esempio seguente viene illustrato un file di stdout.txt tipico. 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=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
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.