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ı qsBatch
eastus2
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 resizing
iken 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ı myJob
myPool
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.