Udostępnij przez


Korzystanie z szablonów interfejsu wiersza polecenia usługi Azure Batch i transferu plików

Ostrzeżenie

Rozszerzenie interfejsu wiersza polecenia usługi Batch platformy Azure zostanie wycofane 30 września 2024 r. Odinstaluj rozszerzenie za pomocą polecenia az extension remove --name azure-batch-cli-extensions.

Za pomocą rozszerzenia usługi Batch do interfejsu wiersza polecenia platformy Azure użytkownicy mogą uruchamiać zadania usługi Batch bez konieczności pisania kodu.

Tworzenie i używanie plików szablonów JSON przy użyciu Azure CLI do tworzenia pul, zadań i zadań Batch. Użyj poleceń rozszerzenia CLI, aby łatwo załadować pliki wejściowe zadania do konta magazynowego powiązanego z kontem usługi Batch oraz pobrać pliki wyjściowe zadania.

Uwaga

Pliki JSON nie obsługują tych samych funkcji co szablony usługi Azure Resource Manager. Mają być sformatowane tak jak nieprzetworzona treść żądania REST. Rozszerzenie interfejsu wiersza polecenia nie zmienia żadnych istniejących poleceń, ale ma podobną opcję szablonu, która dodaje częściową funkcjonalność szablonu usługi Azure Resource Manager. Zobacz Rozszerzenia interfejsu wiersza polecenia usługi Azure Batch dla systemów Windows, Mac i Linux.

Przegląd

Rozszerzenie interfejsu wiersza polecenia platformy Azure umożliwia kompleksowe korzystanie z usługi Batch przez użytkowników, którzy nie są programistami. Za pomocą tylko poleceń interfejsu wiersza polecenia można utworzyć pulę, przekazać dane wejściowe, utworzyć zadania i skojarzone zadania oraz pobrać wynikowe dane wyjściowe. Nie jest wymagany dodatkowy kod. Uruchom polecenia CLI bezpośrednio lub zintegruj je ze skryptami.

Szablony usługi Batch bazują na istniejącej obsłudze usługi Batch w interfejsie wiersza polecenia platformy Azure dla plików JSON w celu określenia wartości właściwości podczas tworzenia pul, zadań, zadań i innych elementów. Szablony usługi Batch dodają następujące możliwości:

  • Parametry można zdefiniować. Gdy szablon jest używany, tylko wartości parametrów są określane do utworzenia elementu z innymi wartościami właściwości elementu określonymi w treści szablonu. Użytkownik, który rozumie usługę Batch i aplikacje, które mają być uruchamiane przez usługę Batch, może tworzyć szablony, określać wartości właściwości puli, zadania i zadania. Użytkownik mniej zaznajomiony z usługą Batch i/lub aplikacjami musi tylko określić wartości dla zdefiniowanych parametrów.

  • Fabryki zadań tworzą co najmniej jedno zadanie skojarzone z zadaniem, co pozwala uniknąć konieczności utworzenia wielu definicji zadań i znacznego uproszczenia przesyłania zadań.

Zadania zazwyczaj używają plików danych wejściowych i tworzą pliki danych wyjściowych. Konto magazynu jest domyślnie skojarzone z każdym kontem usługi Batch. Pliki można przenosić do i z tego konta magazynu przy użyciu interfejsu wiersza polecenia platformy Azure bez kodowania i bez poświadczeń magazynu.

Na przykład ffmpeg to popularna aplikacja, która przetwarza pliki audio i wideo. Korzystając z rozszerzenia CLI Azure Batch, możesz ułatwić użytkownikowi proces uruchamiania ffmpeg do transkodowania źródłowych plików wideo do różnych rozdzielczości. Proces może wyglądać następująco:

  • Utwórz szablon puli. Użytkownik tworzący szablon wie, jak wywołać aplikację ffmpeg i jej wymagania; określają odpowiedni system operacyjny, rozmiar maszyny wirtualnej, sposób instalowania narzędzia ffmpeg (na przykład z pakietu aplikacji lub przy użyciu menedżera pakietów) oraz innych wartości właściwości puli. Parametry są tworzone tak, aby po użyciu szablonu należy określić tylko identyfikator puli i liczbę maszyn wirtualnych.
  • Utwórz szablon zadania. Użytkownik tworzący szablon wie, jak należy wywołać narzędzie ffmpeg w celu transkodowania źródłowego wideo do innej rozdzielczości i określa wiersz polecenia zadania; wiedzą również, że istnieje folder zawierający źródłowe pliki wideo z zadaniem wymaganym dla każdego pliku wejściowego.
  • Użytkownik końcowy z zestawem plików wideo do transkodowania najpierw tworzy pulę przy użyciu szablonu puli, określając tylko identyfikator puli i wymaganą liczbę maszyn wirtualnych. Następnie mogą przekazać pliki źródłowe do transkodowania. Zadanie można następnie przesłać przy użyciu szablonu zadania, określając tylko identyfikator puli i lokalizację przekazanych plików źródłowych. Zadanie Batch jest tworzone, z jednym zadaniem generowanym na każdy plik wejściowy. Na koniec można pobrać transkodowane pliki wyjściowe.

Instalacja

Aby zainstalować rozszerzenie interfejsu wiersza polecenia usługi Azure Batch, najpierw zainstaluj interfejs wiersza polecenia platformy Azure 2.0 lub uruchom interfejs wiersza polecenia platformy Azure w usłudze Azure Cloud Shell.

Zainstaluj najnowszą wersję rozszerzenia usługi Batch przy użyciu następującego polecenia interfejsu wiersza polecenia platformy Azure:

az extension add --name azure-batch-cli-extensions

Aby uzyskać więcej informacji na temat rozszerzenia interfejsu wiersza polecenia usługi Batch i dodatkowych opcji instalacji, zobacz repozytorium GitHub.

Aby korzystać z funkcji rozszerzenia interfejsu wiersza polecenia, potrzebujesz konta usługi Azure Batch oraz poleceń, które przesyłają pliki do i z magazynu, połączonego konta magazynu.

Aby zalogować się do konta usługi Batch przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz Zarządzanie zasobami usługi Batch przy użyciu interfejsu wiersza polecenia platformy Azure.

Szablony

Szablony usługi Azure Batch są podobne do szablonów usługi Azure Resource Manager w funkcji i składni. Są to pliki JSON, które zawierają nazwy i wartości właściwości elementu, ale dodaj następujące główne pojęcia:

  • Parametry: zezwalaj na określanie wartości właściwości w sekcji treści, przy użyciu tylko wartości parametrów, które należy podać, gdy szablon jest używany. Na przykład pełną definicję puli można umieścić w treści i tylko jeden parametr zdefiniowany dla poolIdparametru ; w związku z tym należy podać tylko ciąg identyfikatora puli, aby utworzyć pulę. Treść szablonu może być utworzona przez osobę mającą wiedzę na temat usługi Batch i aplikacji, które mają być uruchamiane przez usługę Batch; w przypadku użycia szablonu należy podać tylko wartości parametrów zdefiniowanych przez autora. Dzięki temu użytkownicy bez dogłębnej wiedzy usługi Batch i/lub aplikacji korzystają z szablonów.
  • Zmienne: zezwalaj na określanie prostych lub złożonych wartości parametrów w jednym miejscu i używanych w co najmniej jednym miejscu w treści szablonu. Zmienne mogą uprościć i zmniejszyć rozmiar szablonu, a także zwiększyć jego obsługę, mając jedną lokalizację do zmiany właściwości.
  • Konstrukcje wyższego poziomu: niektóre konstrukcje wyższego poziomu są dostępne w szablonie, który nie jest jeszcze dostępny w interfejsach API usługi Batch. Na przykład fabrykę zadań można zdefiniować w szablonie pracy, który tworzy wiele zadań dla tej pracy, przy użyciu wspólnej definicji zadania. Konstrukcje te pozwalają uniknąć konieczności dynamicznego tworzenia wielu plików JSON, takich jak jeden plik na zadanie, a także tworzenie plików skryptów do instalowania aplikacji za pośrednictwem menedżera pakietów.

Szablony puli

Szablony puli obsługują standardowe możliwości szablonów parametrów i zmiennych. Obsługują one również odwołania do pakietów, które umożliwiają opcjonalne kopiowanie oprogramowania do węzłów puli za pomocą menedżerów pakietów. Menedżer pakietów i identyfikator pakietu są określone w dokumentacji pakietu. Deklarując co najmniej jeden pakiet, należy unikać tworzenia skryptu, który pobiera wymagane pakiety, instaluje skrypt i uruchamia skrypt w każdym węźle puli.

Poniżej przedstawiono przykład szablonu, który tworzy pulę maszyn wirtualnych z systemem Linux z zainstalowanym pakietem ffmpeg. Aby go użyć, podaj tylko ciąg identyfikatora puli i liczbę maszyn wirtualnych w puli:

{
    "parameters": {
        "nodeCount": {
            "type": "int",
            "metadata": {
                "description": "The number of pool nodes"
            }
        },
        "poolId": {
            "type": "string",
            "metadata": {
                "description": "The pool ID "
            }
        }
    },
    "pool": {
        "type": "Microsoft.Batch/batchAccounts/pools",
        "apiVersion": "2016-12-01",
        "properties": {
            "id": "[parameters('poolId')]",
            "virtualMachineConfiguration": {
                "imageReference": {
                    "publisher": "Canonical",
                    "offer": "UbuntuServer",
                    "sku": "20.04-LTS",
                    "version": "latest"
                },
                "nodeAgentSKUId": "batch.node.ubuntu 20.04"
            },
            "vmSize": "STANDARD_D3_V2",
            "targetDedicatedNodes": "[parameters('nodeCount')]",
            "enableAutoScale": false,
            "taskSlotsPerNode": 1,
            "packageReferences": [
                {
                    "type": "aptPackage",
                    "id": "ffmpeg"
                }
            ]
        }
    }
}

Jeśli plik szablonu miał nazwę pool-ffmpeg.json, wywołaj szablon w następujący sposób:

az batch pool create --template pool-ffmpeg.json

Interfejs wiersza polecenia wyświetla monit o podanie wartości parametrów poolId i nodeCount . Parametry można również podać w pliku JSON. Na przykład:

{
  "poolId": {
    "value": "mypool"
  },
  "nodeCount": {
    "value": 2
  }
}

Jeśli plik JSON parametrów nosił nazwę pool-parameters.json, wywołaj szablon w następujący sposób:

az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json

Szablony zadań

Szablony zadań obsługują standardowe możliwości szablonów parametrów i zmiennych. Obsługują one również konstrukcję fabryki zadań , która tworzy wiele zadań dla zadania z jednej definicji zadania. Obsługiwane są trzy typy wytwarzania zadań: przeszukiwanie parametryczne, zadanie przypisane do pliku i kolekcja zadań.

Poniżej przedstawiono przykład szablonu, który tworzy zadanie transkodowania plików wideo MP4 za pomocą narzędzia ffmpeg do jednej z dwóch niższych rozdzielczości. Tworzy jedno zadanie na źródłowy plik wideo. Zobacz Grupy plików i transfer plików , aby uzyskać więcej informacji na temat grup plików dla danych wejściowych i wyjściowych zadania.

{
    "parameters": {
        "poolId": {
            "type": "string",
            "metadata": {
                "description": "The name of Azure Batch pool which runs the job"
            }
        },
        "jobId": {
            "type": "string",
            "metadata": {
                "description": "The name of Azure Batch job"
            }
        },
        "resolution": {
            "type": "string",
            "defaultValue": "428x240",
            "allowedValues": [
                "428x240",
                "854x480"
            ],
            "metadata": {
                "description": "Target video resolution"
            }
        }
    },
    "job": {
        "type": "Microsoft.Batch/batchAccounts/jobs",
        "apiVersion": "2016-12-01",
        "properties": {
            "id": "[parameters('jobId')]",
            "constraints": {
                "maxWallClockTime": "PT5H",
                "maxTaskRetryCount": 1
            },
            "poolInfo": {
                "poolId": "[parameters('poolId')]"
            },
            "taskFactory": {
                "type": "taskPerFile",
                "source": {
                    "fileGroup": "ffmpeg-input"
                },
                "repeatTask": {
                    "commandLine": "ffmpeg -i {fileName} -y -s [parameters('resolution')] -strict -2 {fileNameWithoutExtension}_[parameters('resolution')].mp4",
                    "resourceFiles": [
                        {
                            "blobSource": "{url}",
                            "filePath": "{fileName}"
                        }
                    ],
                    "outputFiles": [
                        {
                            "filePattern": "{fileNameWithoutExtension}_[parameters('resolution')].mp4",
                            "destination": {
                                "autoStorage": {
                                    "path": "{fileNameWithoutExtension}_[parameters('resolution')].mp4",
                                    "fileGroup": "ffmpeg-output"
                                }
                            },
                            "uploadOptions": {
                                "uploadCondition": "TaskSuccess"
                            }
                        }
                    ]
                }
            },
            "onAllTasksComplete": "terminatejob"
        }
    }
}

Jeśli plik szablonu miał nazwę job-ffmpeg.json, wywołaj szablon w następujący sposób:

az batch job create --template job-ffmpeg.json

Tak jak wcześniej, interfejs wiersza polecenia monituje o podanie wartości parametrów. Parametry można również podać w pliku JSON.

Używanie szablonów w programie Batch Explorer

Szablon interfejsu wiersza polecenia usługi Batch można przekazać do aplikacji komputerowej Batch Explorer, aby utworzyć pulę lub zadanie usługi Batch. Możesz również wybrać pulę wstępnie zdefiniowaną i szablony zadań w galerii programu Batch Explorer.

Aby przesłać szablon:

  1. W programie Batch Explorer wybierz galerię>Szablony lokalne.
  2. Wybierz lub przeciągnij i upuść lokalną pulę lub szablon zadania.
  3. Wybierz pozycję Użyj tego szablonu i postępuj zgodnie z monitami wyświetlanymi na ekranie.

Grupy plików i transfer plików

Większość zadań i zadań wymaga plików wejściowych i generuje pliki wyjściowe. Zazwyczaj pliki wejściowe i pliki wyjściowe są przesyłane z klienta do węzła lub z węzła do klienta. Rozszerzenie CLI usługi Azure Batch upraszcza transfer plików, używając konta magazynu, które można skojarzyć z każdym kontem usługi Batch.

Grupa plików jest równa kontenerowi utworzonemu na koncie usługi Azure Storage. Grupa plików może mieć podfoldery.

Rozszerzenie interfejsu wiersza polecenia usługi Batch udostępnia polecenia przekazywania plików z klienta do określonej grupy plików i pobierania plików z określonej grupy plików do klienta.

az batch file upload --local-path c:\source_videos\*.mp4
    --file-group ffmpeg-input

az batch file download --file-group ffmpeg-output --local-path
    c:\output_lowres_videos

Szablony puli i zadań umożliwiają określenie plików przechowywanych w grupach plików na potrzeby kopiowania do węzłów puli lub poza węzłami puli z powrotem do grupy plików. Na przykład w szablonie zadania wskazanym wcześniej dla centrum zadaniowego określono grupę plików ffmpeg-input jako lokalizację źródłowych plików wideo skopiowanych do węzła na potrzeby transkodowania. Grupa plików ffmpeg-output to lokalizacja, w której transkodowane pliki wyjściowe są kopiowane z węzła, w którym uruchomiono każde zadanie.

Podsumowanie

Obsługa transferu szablonów i plików została obecnie dodana tylko do interfejsu wiersza polecenia platformy Azure. Celem jest rozszerzenie odbiorców, którzy mogą używać usługi Batch do użytkowników, którzy nie muszą opracowywać kodu przy użyciu interfejsów API usługi Batch, takich jak naukowcy i użytkownicy IT. Bez kodowania użytkownicy znający platformę Azure, usługę Batch i aplikacje, które mają być uruchamiane przez usługę Batch, mogą tworzyć szablony do tworzenia puli i zadań. Dzięki parametrom szablonu użytkownicy bez szczegółowej wiedzy na temat usługi Batch i aplikacji mogą korzystać z szablonów.

Wypróbuj rozszerzenie usługi Batch dla interfejsu wiersza polecenia platformy Azure i przekaż nam wszelkie opinie lub sugestie w komentarzach do tego artykułu lub za pośrednictwem repozytorium Społeczności usługi Batch.

Następne kroki