CLI örneği: Azure Batch ile bir işi ve görevleri çalıştırma

Bu betik, bir Batch işi oluşturur ve bu işe bir dizi görev ekler. Ayrıca bir işi ve görevlerini izlemeyi gösterir.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Ön koşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Örnek betik

Azure Cloud Shell'i başlatma

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. İsterseniz https://shell.azure.com adresine giderek Cloud Shell'i ayrı bir tarayıcı sekmesinde de başlatabilirsiniz.

Cloud Shell açıldığında ortamınız için Bash'in seçili olduğunu doğrulayın. Sonraki oturumlarda Bash ortamında Azure CLI kullanılır, kod bloklarını kopyalamak için Kopyala'yı seçin, Cloud Shell'e yapıştırın ve çalıştırmak için Enter tuşuna basın.

Azure'da oturum açma

Cloud Shell'de oturum açılan ilk hesapta otomatik olarak kimlik doğrulaması yapılır. Farklı bir abonelik kullanarak oturum açmak için aşağıdaki betiği kullanın ve yerine <Subscription ID> Azure Abonelik Kimliğiniz yazın. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Daha fazla bilgi için bkz . Etkin aboneliği ayarlama veya etkileşimli olarak oturum açma

Batch hizmeti modunda bir Batch hesabı oluşturma

# 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'"

Aynı anda birçok görev eklemek için

Aynı anda birçok görev eklemek için, görevleri bir JSON dosyasında belirtin ve komutuna geçirin. Biçim için bkz https://github.com/Azure/azure-docs-cli-python-samples/blob/master/batch/run-job/tasks.json. . JSON dosyasının mutlak yolunu belirtin. Örnek bir JSON dosyası için bkz 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

İşi güncelleştirmek için

Tüm görevler tamamlandıktan sonra işi otomatik olarak tamamlandı olarak işaretlenecek şekilde güncelleştirin.

az batch job set \
--job-id myjob \
--on-all-tasks-complete terminatejob

İşin durumunu izlemek için

az batch job show --job-id myjob

Görevin durumunu izlemek için

az batch task show \
    --job-id myjob \
    --task-id task1

Kaynakları temizleme

Bu kaynaklara sürekli ihtiyaç duymadığınız sürece az group delete komutunu kullanarak kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komutu kullanın. Bu kaynaklardan bazılarının oluşturulması ve silinmesi biraz zaman alabilir.

az group delete --name $resourceGroup

Örnek başvuru

Bu betik aşağıdaki komutları kullanır. Tablodaki her komut, komuta özgü belgelere yönlendirir.

Command Notlar
az group create Tüm kaynakların depolandığı bir kaynak grubu oluşturur.
az batch account create Batch hesabını oluşturur.
az batch account login Daha fazla CLI etkileşimi için belirtilen Batch hesabına karşı kimlik doğrulaması yapar.
az batch pool create İşlem düğümleri havuzu oluşturur.
az batch job create Batch işi oluşturur.
az batch task create Belirtilen Batch işine bir görev ekler.
az batch job set Bir Batch işinin özelliklerini güncelleştirir.
az batch job show Belirtilen Batch işinin ayrıntılarını alır.
az batch task show Belirtilen Batch işinden bir görevin ayrıntılarını alır.
az group delete Bir kaynak grubunu tüm iç içe geçmiş kaynaklar dahil siler.

Sonraki adımlar

Azure CLI hakkında daha fazla bilgi için bkz. Azure CLI belgeleri.