Szybki start: tworzenie konta usługi Batch i uruchamianie zadania przy użyciu interfejsu wiersza polecenia platformy Azure

W tym przewodniku Szybki start pokazano, jak rozpocząć pracę z usługą Azure Batch przy użyciu poleceń i skryptów interfejsu wiersza polecenia platformy Azure w celu tworzenia zasobów usługi Batch i zarządzania nimi. Utworzysz konto usługi Batch z pulą maszyn wirtualnych lub węzłami obliczeniowymi. Następnie utworzysz i uruchomisz zadanie z zadaniami uruchamianymi w węzłach puli.

Po ukończeniu tego przewodnika Szybki start zapoznasz się z kluczowymi pojęciami usługi Batch i możesz przystąpić do korzystania z usługi Batch z bardziej realistycznymi, większymi obciążeniami na dużą skalę.

Wymagania wstępne

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

  • Azure Cloud Shell lub interfejs wiersza polecenia platformy Azure.

    Polecenia interfejsu wiersza polecenia platformy Azure można uruchomić w tym przewodniku Szybki start interaktywnie w usłudze Azure Cloud Shell. Aby uruchomić polecenia w usłudze Cloud Shell, wybierz pozycję Otwórz program CloudShell w prawym górnym rogu bloku kodu. Wybierz pozycję Kopiuj , aby skopiować kod i wklej go w usłudze Cloud Shell, aby go uruchomić. Możesz również uruchomić usługę Cloud Shell z poziomu witryny Azure Portal. Usługa Cloud Shell zawsze używa najnowszej wersji interfejsu wiersza polecenia platformy Azure.

    Alternatywnie możesz zainstalować interfejs wiersza polecenia platformy Azure lokalnie , aby uruchomić polecenia. Kroki opisane w tym artykule wymagają interfejsu wiersza polecenia platformy Azure w wersji 2.0.20 lub nowszej. Uruchom polecenie az version , aby wyświetlić zainstalowaną wersję i biblioteki zależne, a następnie uruchom polecenie az upgrade , aby uaktualnić. Jeśli używasz instalacji lokalnej, zaloguj się do platformy Azure przy użyciu polecenia az login .

Uwaga

W przypadku niektórych regionów i typów subskrypcji ograniczenia limitu przydziału mogą spowodować niepowodzenie lub niepowodzenie tworzenia węzła lub konta usługi Batch. W takiej sytuacji można zażądać zwiększenia limitu przydziału bez opłat. Aby uzyskać więcej informacji, zobacz Batch service quotas and limits (Limity i limity usługi Batch).

Tworzenie grupy zasobów

Uruchom następujące polecenie az group create , aby utworzyć grupę zasobów platformy Azure o nazwie qsBatch w eastus2 regionie świadczenia usługi Azure. Grupa zasobów jest kontenerem logicznym, który przechowuje zasoby platformy Azure na potrzeby tego przewodnika Szybki start.

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

Tworzenie konta magazynu

Użyj polecenia az storage account create, aby utworzyć konto usługi Azure Storage, aby połączyć się z kontem usługi Batch. Mimo że ten przewodnik Szybki start nie używa konta magazynu, większość rzeczywistych obciążeń usługi Batch używa połączonego konta magazynu do wdrażania aplikacji i przechowywania danych wejściowych i wyjściowych.

Uruchom następujące polecenie, aby utworzyć konto magazynu jednostki SKU Standard_LRS o nazwie mybatchstorage w grupie zasobów:

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

Tworzenie konta usługi Batch

Uruchom następujące polecenie az batch account create , aby utworzyć konto usługi Batch o nazwie mybatchaccount w grupie zasobów i połączyć je z mybatchstorage kontem magazynu.

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

Zaloguj się do nowego konta usługi Batch, uruchamiając polecenie az batch account login . Po uwierzytelnieniu konta w usłudze Batch kolejne az batch polecenia w tej sesji używają tego kontekstu konta.

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

Tworzenie puli węzłów obliczeniowych

Uruchom polecenie az batch pool create, aby utworzyć pulę węzłów obliczeniowych systemu Linux na koncie usługi Batch. W poniższym przykładzie utworzono pulę o nazwie myPool składającą się z dwóch maszyn wirtualnych o rozmiarze Standard_A1_v2 z systemem operacyjnym Ubuntu 20.04 LTS. Ten rozmiar węzła zapewnia dobrą równowagę między wydajnością a kosztami dla tego przykładu przewodnika Szybki start.

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

Usługa Batch natychmiast tworzy pulę, ale przydzielanie i uruchamianie węzłów obliczeniowych zajmuje kilka minut. Aby wyświetlić stan puli, użyj polecenia az batch pool show . To polecenie powoduje wyświetlenie wszystkich właściwości puli i umożliwia wykonywanie zapytań o określone właściwości. Następujące polecenie wykonuje zapytania dotyczące stanu alokacji puli:

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

Podczas gdy usługa Batch przydziela i uruchamia węzły, pula jest w resizing stanie . Zadanie i zadania podrzędne można utworzyć, gdy stan puli jest nadal resizing. Pula jest gotowa do uruchamiania zadań podrzędnych, gdy stan alokacji to steady i wszystkie węzły są uruchomione.

Tworzenie zadania

Użyj polecenia az batch job create, aby utworzyć zadanie usługi Batch do uruchomienia w puli. Zadanie usługi Batch to logiczna grupa co najmniej jednego zadania. Zadanie zawiera ustawienia wspólne dla zadań, takich jak pula do uruchomienia. Poniższy przykład tworzy zadanie o nazwie myJob , które myPool początkowo nie ma żadnych zadań.

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

Tworzenie zadań podrzędnych

Usługa Batch udostępnia kilka sposobów wdrażania aplikacji i skryptów w węzłach obliczeniowych. Użyj polecenia az batch task create, aby utworzyć zadania podrzędne do uruchomienia w zadaniu. Każde zadanie ma wiersz polecenia, który określa aplikację lub skrypt.

Poniższy skrypt powłoki Bash tworzy cztery identyczne, równoległe zadania wywoływane myTask1 za pomocą metody myTask4. Wiersz polecenia zadania wyświetla zmienne środowiskowe usługi Batch w węźle obliczeniowym, a następnie czeka 90 sekund.

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

W danych wyjściowych polecenia są wyświetlane ustawienia dla każdego zadania. Usługa Batch dystrybuuje zadania podrzędne do węzłów obliczeniowych.

Wyświetlanie stanu zadania podrzędnego

Po utworzeniu zadania usługa Batch kolejkuje zadanie do uruchomienia w puli. Po udostępnieniu węzła zadanie jest uruchamiane w węźle.

Użyj polecenia az batch task show, aby wyświetlić stan zadań usługi Batch. W poniższym przykładzie przedstawiono szczegółowe informacje o stanie elementu myTask1:

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

Dane wyjściowe polecenia zawierają wiele szczegółów. Na przykład element z exitCode0 wskazuje, że polecenie zadania zostało ukończone pomyślnie. Zostanie nodeId wyświetlona nazwa węzła puli, w ramach którego uruchomiono zadanie.

Wyświetlanie danych wyjściowych zadania podrzędnego

Użyj polecenia az batch task file list, aby wyświetlić listę plików zadania utworzonego w węźle. Następujące polecenie wyświetla listę utworzonych plików myTask1 :

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

Wyniki są podobne do następujących danych wyjściowych:

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

Polecenie az batch task file download pobiera pliki wyjściowe do katalogu lokalnego. Uruchom następujący przykład, aby pobrać plik stdout.txt :

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

Zawartość standardowego pliku wyjściowego można wyświetlić w edytorze tekstów. W poniższym przykładzie przedstawiono typowy plik stdout.txt . Standardowe dane wyjściowe z tego zadania pokazują zmienne środowiskowe usługi Azure Batch ustawione w węźle. Możesz odwołać się do tych zmiennych środowiskowych w wierszach poleceń zadania zadania usługi Batch, a w aplikacjach i skryptach uruchamiane są wiersze polecenia.

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

Czyszczenie zasobów

Jeśli chcesz kontynuować pracę z samouczkami i przykładami usługi Batch, możesz użyć konta usługi Batch i połączonego konta magazynu utworzonego w tym przewodniku Szybki start. Za samo konto usługi Batch nie są naliczane opłaty.

Pule i węzły są naliczane opłaty, gdy węzły są uruchomione, nawet jeśli nie są uruchomione zadania. Jeśli pula nie jest już potrzebna, użyj polecenia az batch pool delete , aby go usunąć. Usunięcie puli powoduje usunięcie wszystkich danych wyjściowych zadania w węzłach i samych węzłów.

az batch pool delete --pool-id myPool

Jeśli nie potrzebujesz już żadnych zasobów utworzonych na potrzeby tego przewodnika Szybki start, możesz użyć polecenia az group delete , aby usunąć grupę zasobów i wszystkie jej zasoby. Aby usunąć grupę zasobów i konto magazynu, konto usługi Batch, pule węzłów i wszystkie powiązane zasoby, uruchom następujące polecenie:

az group delete --name qsBatch

Następne kroki

W tym przewodniku Szybki start utworzono konto i pulę usługi Batch, utworzono i uruchomiono zadanie usługi Batch oraz zadania podrzędne oraz wyświetlono dane wyjściowe zadania z węzłów. Teraz, gdy rozumiesz kluczowe pojęcia usługi Batch, możesz przystąpić do korzystania z usługi Batch z bardziej realistycznymi, większymi obciążeniami na dużą skalę. Aby dowiedzieć się więcej o usłudze Azure Batch, kontynuuj naukę w ramach samouczków usługi Azure Batch.