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 exitCode
0
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=myJob
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.