Hızlı Başlangıç: Batch hesabı oluşturmak ve bir iş çalıştırmak için Azure CLI'yi kullanma

Bu hızlı başlangıçta, Batch kaynaklarını oluşturmak ve yönetmek için Azure CLI komutlarını ve betiklerini kullanarak Azure Batch'i kullanmaya başlama adımları gösterilmektedir. Sanal makine havuzu veya işlem düğümleri içeren bir Batch hesabı oluşturursunuz. Ardından havuz düğümlerinde çalışan görevlerle bir iş oluşturup çalıştırırsınız.

Bu hızlı başlangıcı tamamladıktan sonra Batch hizmetinin temel kavramlarını anlarsınız ve Batch'i daha gerçekçi ve daha büyük ölçekli iş yükleriyle kullanmaya hazır olursunuz.

Ön koşullar

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

  • Azure Cloud Shell veya Azure CLI.

    Bu hızlı başlangıçta Azure CLI komutlarını Azure Cloud Shell'de etkileşimli olarak çalıştırabilirsiniz. Cloud Shell'de komutları çalıştırmak için kod bloğunun sağ üst köşesindeki CloudShell'i Aç'ı seçin. Kodu kopyalamak için Kopyala'yı seçin ve çalıştırmak için Cloud Shell'e yapıştırın. Cloud Shell'i Azure portalından da çalıştırabilirsiniz. Cloud Shell her zaman Azure CLI'nın en son sürümünü kullanır.

    Alternatif olarak, komutları çalıştırmak için Azure CLI'yi yerel olarak yükleyebilirsiniz. Bu makaledeki adımlar Için Azure CLI sürüm 2.0.20 veya üzeri gerekir. Yüklü sürümünüzü ve bağımlı kitaplıklarınızı görmek için az version komutunu çalıştırın ve yükseltmek için az upgrade komutunu çalıştırın. Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure'da oturum açın .

Dekont

Bazı bölgeler ve abonelik türleri için kota kısıtlamaları Batch hesabı veya düğüm oluşturma işleminin başarısız olmasına veya tamamlanmamasına neden olabilir. Bu durumda, ücretsiz olarak kota artışı isteyebilirsiniz. Daha fazla bilgi için bkz . Batch hizmeti kotaları ve sınırları.

Kaynak grubu oluşturma

Azure bölgesinde adlı qsBatcheastus2 bir Azure kaynak grubu oluşturmak için aşağıdaki az group create komutunu çalıştırın. Kaynak grubu, bu hızlı başlangıç için Azure kaynaklarını barındıran bir mantıksal kapsayıcıdır.

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

Depolama hesabı oluşturma

Batch hesabınıza bağlamak üzere bir Azure Depolama hesabı oluşturmak için az storage account create komutunu kullanın. Bu hızlı başlangıçta depolama hesabı kullanılmasa da, çoğu gerçek dünyadaki Batch iş yükleri uygulamaları dağıtmak ve giriş ve çıkış verilerini depolamak için bağlı bir depolama hesabı kullanır.

Kaynak grubunuzda adlı mybatchstorage bir Standard_LRS SKU depolama hesabı oluşturmak için aşağıdaki komutu çalıştırın:

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

Batch hesabı oluşturma

Kaynak grubunuzda adlı mybatchaccount bir Batch hesabı oluşturmak ve bunu depolama hesabıyla mybatchstorage bağlamak için aşağıdaki az batch account create komutunu çalıştırın.

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

az batch account login komutunu çalıştırarak yeni Batch hesabında oturum açın . Batch ile hesabınızın kimliğini doğruladıktan sonra, bu oturumdaki sonraki az batch komutlar bu hesap bağlamını kullanır.

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

İşlem düğümleri havuzu oluşturma

Batch hesabınızda linux işlem düğümleri havuzu oluşturmak için az batch pool create komutunu çalıştırın. Aşağıdaki örnek, Ubuntu 20.04 LTS işletim sistemi çalıştıran iki Standard_A1_v2 boyutlu VM'den oluşan adlı myPool bir havuz oluşturur. Bu düğüm boyutu, bu hızlı başlangıç örneği için iyi bir performans ve maliyet dengesi sunar.

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 havuzu hemen oluşturur, ancak işlem düğümlerinin ayrılması ve başlatılması birkaç dakika sürer. Havuz durumunu görmek için az batch pool show komutunu kullanın. Bu komut, havuzun tüm özelliklerini gösterir. Dilerseniz belirli özellikler için sorgu gönderebilirsiniz. Aşağıdaki komut, havuz ayırma durumu için sorgular:

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

Batch düğümleri ayırıp başlatırken havuz şu durumdadır resizing . Havuz durumu hala resizingiken bir iş ve görevler oluşturabilirsiniz. Ayırma durumu steady olduğunda ve düğümler çalıştığında havuz tamamen görev çalıştırmaya hazır olur.

İş oluşturma

Az batch job create komutunu kullanarak havuzunuzda çalıştırılacak bir Batch işi oluşturun. Batch işi, bir veya daha fazla görevin mantıksal grubudur. İş, üzerinde çalıştırılacak havuz gibi görevler için ortak ayarları içerir. Aşağıdaki örnek, başlangıçta hiç görevi olmayan adlı myJobmyPool bir iş oluşturur.

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

İş görevleri oluşturma

Batch, işlem düğümlerine uygulama ve betik dağıtmanın çeşitli yollarını sağlar. az batch task create komutunu kullanarak işte çalıştırılacak görevler oluşturun. Her görevin bir uygulama veya betik belirten bir komut satırı vardır.

Aşağıdaki Bash betiği aracılığıyla myTask4çağrılan myTask1 dört özdeş, paralel görev oluşturur. Görev komut satırı, işlem düğümünde Batch ortam değişkenlerini görüntüler ve 90 saniye bekler.

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

Komut çıktısı her görevin ayarlarını gösterir. Batch, işlem düğümlerine görevleri dağıtır.

Görev durumunu görüntüleme

Görevi oluşturduktan sonra Batch, görevi havuzda çalıştırılacak şekilde kuyruğa alır. Bir düğüm kullanılabilir olduğunda, görev düğüm üzerinde çalışır.

Batch görevlerinin durumunu görüntülemek için az batch task show komutunu kullanın. Aşağıdaki örnekte, durumunun ayrıntıları gösterilmektedir myTask1:

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

Komut çıktısı birçok ayrıntı içerir. Örneğin, bir exitCode değeri 0 görev komutunun başarıyla tamamlandığını gösterir. , nodeId görevi çalıştıran havuz düğümünün adını gösterir.

Görev çıktısını görüntüleme

Bir görevin düğümde oluşturduğu dosyaları listelemek için az batch task file list komutunu kullanın. Aşağıdaki komut, oluşturulan dosyaları myTask1 listeler:

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

Sonuçlar aşağıdaki çıkışa benzer:

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

az batch task file download komutu çıkış dosyalarını yerel bir dizine indirir. stdout.txt dosyasını indirmek için aşağıdaki örneği çalıştırın:

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

Standart çıktı dosyasının içeriğini bir metin düzenleyicisinde görüntüleyebilirsiniz. Aşağıdaki örnekte tipik bir stdout.txt dosyası gösterilmektedir. Bu görevin standart çıktısı, düğümde ayarlanan Azure Batch ortam değişkenlerini gösterir. Batch işi görev komut satırlarınızda ve uygulamalarda ve betiklerde komut satırları çalıştırıldığında bu ortam değişkenlerine başvurabilirsiniz.

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

Kaynakları temizleme

Batch öğreticileri ve örnekleriyle devam etmek istiyorsanız, bu hızlı başlangıçta oluşturduğunuz Batch hesabını ve bağlı depolama hesabını kullanabilirsiniz. Batch hesabının kendisi için ücret alınmaz.

İş çalıştırmasalar bile, düğümler çalışırken havuzlar ve düğümler ücretlendirilir. Artık havuza ihtiyacınız kalmadığında, az batch pool delete komutunu kullanarak havuzu silin. Bir havuzun silinmesi, düğümlerdeki tüm görev çıkışını ve düğümleri siler.

az batch pool delete --pool-id myPool

Bu hızlı başlangıç için oluşturduğunuz kaynaklardan herhangi birine artık ihtiyacınız kalmadığında, az group delete komutunu kullanarak kaynak grubunu ve tüm kaynaklarını silebilirsiniz. Kaynak grubunu ve depolama hesabını, Batch hesabını, düğüm havuzlarını ve tüm ilgili kaynakları silmek için aşağıdaki komutu çalıştırın:

az group delete --name qsBatch

Sonraki adımlar

Bu hızlı başlangıçta bir Batch hesabı ve havuzu oluşturdunuz, bir Batch işi ve görevleri oluşturup çalıştırıp düğümlerden görev çıktısını görüntülemiştiniz. Batch hizmetinin temel kavramlarını anladığınıza göre, Batch'i daha gerçekçi ve daha büyük ölçekli iş yükleriyle kullanmaya hazırsınız. Azure Batch hakkında daha fazla bilgi için Azure Batch öğreticilerine devam edin.