Alıştırma - Azure Batch işinizi CLI'de izleme

Tamamlandı

Yoğun görevleri çalıştırmak için Azure Batch'i kullanıyorsanız görevlerin ne durumda olduğunu da öğrenmek istersiniz.

Kar amacı gütmeyen kuruluş için çözüm mimarı olarak Azure Batch'te gerçekleşen işlemlere erişmenin yolları gerekir. Ayrıca düğümlerin ve görevlerin çalışıp çalışmadığını, ne kadar ilerlediğini ve indirilebilir çıkış dosyaları üretip üretmediklerini belirlemeniz gerekir.

Bu ünitede Azure CLI'yi kullanarak önceki ünitedekine benzer bir iş oluşturacak, görevlerinin ilerleme durumunu izleyecek ve görevlerin çıkış olarak oluşturduğu dosyaları indireceksiniz.

Önemli

Bu modüldeki alıştırmalar isteğe bağlıdır. Alıştırmaları tamamlamak için kendi Azure aboneliğinize ihtiyacınız vardır.

CLI'yi kullanarak görevleri izleme

İşlem düğümlerini oluşturma ve yönetmenin yanı sıra bu düğümlerde çalıştırılacak işlerin zamanlaması Azure Batch tarafından yapılır.

Azure Batch, son ünitede oluşturduğunuz görevleri havuzda çalıştırılmak üzere kuyruğa ekledi. Düğümlerin gerekli kapasiteye sahip olduğu belirlendiğinde Azure Batch, görevleri bu düğümlerde çalışacak şekilde zamanladı.

Son ünitenin sonunda işi sildik ve tüm görevler de silindi. Şimdi yeni bir iş ve yeni görevler oluşturacağız. Görevleri silme ve yeniden oluşturma işlemleri oldukça hızlı gerçekleştirilir ve Azure Batch'te farklı denemeleri ve projeleri birbirinden kolayca ayırmanızı sağlar. Buna karşılık, Batch havuzunun yeniden oluşturulması ve sanal makinelerin ayrılması gerektiğinden, daha üst düzey Batch varlıklarını (hesaplar gibi) silmek ve yeniden oluşturmak daha fazla zaman alır.

  1. Azure portal oturum açın.

  2. Üstteki menüden Cloud Shell simgesini (>_) seçerek Cloud Shell'i açın.

  3. Yeni bir Batch işi oluşturmak için Cloud Shell'de aşağıdaki komutu çalıştırın:

    az batch job create \
     --id myjob2 \
     --pool-id mypool
    

    Silinmek üzere zamanlanmış ancak henüz silinmiş olması gerekmeyen bir önceki ünitedeki işle herhangi bir çakışmayı önlemek için bunu farklı adlandırdık.

  4. Bu yeni işte Batch görevi oluşturmak için aşağıdaki komutu çalıştırın:

    for i in {1..10}
    do
       az batch task create \
        --task-id mytask$i \
        --job-id myjob2 \
        --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'"
    done
    
  5. Oluşturduğunuz görevlerden birinin durumunu görüntülemek için Cloud Shell'de aşağıdaki komutu çalıştırın:

    az batch task show \
     --job-id myjob2 \
     --task-id mytask1
    

CLI'yi kullanarak görev çıkışını indirme

Toplu işin doğru yürütüldüğünü denetlemek için, oluşturduğu dosyaları indirebilir ve inceleyebilirsiniz.

  1. Oluşturduğunuz görevlerden birinin oluşturduğu tüm dosyaları içeren bir tablo göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın:

    az batch task file list \
     --job-id myjob2 \
     --task-id mytask5 \
     --output table
    

    Not

    Bir The files of the specified task cannot be accessed as the task state is still active hata iletisi görürseniz, birkaç dakika bekleyin ve komutu yeniden çalıştırın.

  2. Görev çıkışları için özel bir dizin oluşturmak ve oraya gitmek için Cloud Shell'de aşağıdaki komutu çalıştırın:

    mkdir taskoutputs && cd taskoutputs
    
  3. Oluşturduğunuz tüm görevlerin oluşturduğu dosyaları indirmek için Cloud Shell'de aşağıdaki komutu çalıştırın:

    for i in {1..10}
    do
    az batch task file download \
        --job-id myjob2 \
        --task-id mytask$i \
        --file-path stdout.txt \
        --destination ./stdout$i.txt
    done
    

    Görevlerin varsayılan çalışma dizini vardır ve varsayılan olarak çalışmaları öğesine stdout.txtyönlendirilir. Döngü yaparak, her biri belirli bir görevin çalışmasını ve onu yürütmek için kullanılan düğümü gösteren numaralı sürümlerine stdout.txtyönlendirebilirizstdout.txt.

  4. Örnek tarafından oluşturulan birkaç dosyanın metin içeriğini görüntülemek için aşağıdaki komutu çalıştırın:

    cat stdout1.txt && cat stdout2.txt
    

    Bu çıkış, Batch zamanlayıcısı tarafından işlenen görevlerin farklı düğümlerde zamanlandığını gösterir.

    Bir sonraki ünitede Azure Batch hesabını ve çalışan düğümleri havuzunu kullanımda bırakacağız ancak Batch işini sileceğiz. Batch işi, Batch görevleri için kapsayıcı görevi gördüğünden bu görevler de silinecek.

  5. Batch işini silmek için aşağıdaki komutu kullanın:

    az batch job delete --job-id myjob2 -y