Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 avvio rapido, si comprendono i concetti chiave del servizio Batch e si è pronti per usare Batch con carichi di lavoro più realistici su larga scala.
Prerequisiti
-
Se non si ha un account Azure, creare un account 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 usando il comando appropriato.
Nota
Per alcune regioni e tipi di sottoscrizione, le restrizioni di quota potrebbero causare l'esito negativo o l'incompleta 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. Il gruppo di risorse è un contenitore logico che contiene le risorse di Azure per questa guida introduttiva.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="canadacentral"
export RESOURCE_GROUP="qsBatch$RANDOM_SUFFIX"
az group create \
--name $RESOURCE_GROUP \
--location $REGION
Risultati:
{
"id": "/subscriptions/xxxxx/resourceGroups/qsBatchxxx",
"location": "eastus2",
"managedBy": null,
"name": "qsBatchxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Creare un account di archiviazione
Usare il comando az storage account create per creare un account Archiviazione di Azure da collegare all'account Batch. Sebbene questa guida introduttiva non utilizzi l'account di archiviazione, la maggior parte dei carichi di lavoro Batch nel mondo reale 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 nel gruppo di risorse:
export STORAGE_ACCOUNT="mybatchstorage$RANDOM_SUFFIX"
az storage account create \
--resource-group $RESOURCE_GROUP \
--name $STORAGE_ACCOUNT \
--location $REGION \
--sku Standard_LRS
Creare un account Batch
Eseguire il comando az batch account create seguente per creare un account Batch nel gruppo di risorse e collegarlo all'account di archiviazione.
export BATCH_ACCOUNT="mybatchaccount$RANDOM_SUFFIX"
az batch account create \
--name $BATCH_ACCOUNT \
--storage-account $STORAGE_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--location $REGION
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 $BATCH_ACCOUNT \
--resource-group $RESOURCE_GROUP \
--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 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.
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
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 $POOL_ID \
--query "{allocationState: allocationState}"
Risultati:
{
"allocationState": "resizing"
}
Mentre Batch alloca e avvia i nodi, il pool si trova nello resizing
stato . È possibile creare un processo e delle 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 lavoro
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 di esecuzione. Nell'esempio seguente viene creato un processo che inizialmente non ha attività.
export JOB_ID="myJob$RANDOM_SUFFIX"
az batch job create \
--id $JOB_ID \
--pool-id $POOL_ID
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 $JOB_ID \
--command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done
Batch distribuisce le attività nei nodi di calcolo.
Visualizzare lo stato dell'attività
Dopo aver creato le attività, Batch le accoda per l'esecuzione nel pool. Quando un nodo è disponibile, un'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 $JOB_ID \
--task-id myTask1
L'output del comando include molti dettagli. Ad esempio, un valore exitCode
di 0
indica che il comando dell'attività è 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
:
# 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
I risultati sono simili all'output seguente:
Risultati:
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 $JOB_ID \
--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 dei task del processo batch, e nelle app e negli script che le righe di comando eseguono.
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
Passaggi successivi
In questa guida di avvio rapido sono stati creati un account Batch e un pool, sono stati creati ed eseguiti 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.