Udostępnij za pośrednictwem


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

Ostrzeżenie

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

Korzystając z rozszerzenia usługi Batch do interfejsu wiersza polecenia platformy Azure, użytkownicy mogą uruchamiać zadania usługi Batch bez pisania kodu.

Tworzenie i używanie plików szablonów JSON za pomocą interfejsu wiersza polecenia platformy Azure do tworzenia pul, zadań i zadań usługi Batch. Użyj poleceń rozszerzenia interfejsu wiersza polecenia, aby łatwo przekazać pliki wejściowe zadania do konta magazynu skojarzonego z kontem usługi Batch i pobrać pliki wyjściowe zadania.

Uwaga

Pliki JSON nie obsługują tej samej funkcjonalności 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 Azure Batch dla systemów Windows, Mac i Linux.

Omówienie

Rozszerzenie interfejsu wiersza polecenia platformy Azure umożliwia usłudze Batch korzystanie z kompleksowej wersji przez użytkowników, którzy nie są deweloperami. 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 żaden dodatkowy kod. Uruchom polecenia interfejsu wiersza polecenia bezpośrednio lub zintegruj je ze skryptami.

Szablony usługi Batch opierają się 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ślone 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 zdefiniowanych parametrów.

  • Fabryki zadań tworzą co najmniej jedno zadanie skojarzone z zadaniem, unikając konieczności tworzenia wielu definicji zadań i znacznie upraszczania przesyłania zadań.

Zadania zazwyczaj używają plików danych wejściowych i generują 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 interfejsu wiersza polecenia Azure Batch, możesz ułatwić użytkownikowi wywołanie pliku ffmpeg w celu transkodowania źródłowych plików wideo do różnych rozwiązań. 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 ffmpeg (z pakietu aplikacji lub korzystania z menedżera pakietów, na przykład) i innych wartości właściwości puli. Parametry są tworzone, więc 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 w 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 liczbę wymaganych maszyn wirtualnych. Następnie mogą przekazać pliki źródłowe do transkodowania. Następnie można przesłać zadanie przy użyciu szablonu zadania, określając tylko identyfikator puli i lokalizację przekazanych plików źródłowych. Zadanie usługi Batch jest tworzone z jednym zadaniem na generowany plik wejściowy. Na koniec można pobrać transkodowane pliki wyjściowe.

Instalacja

Aby zainstalować rozszerzenie interfejsu wiersza polecenia 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, potrzebne jest konto Azure Batch oraz polecenia, które przesyłają pliki do i z magazynu, połączone konto 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 Azure Batch są podobne do szablonów usługi Azure Resource Manager w funkcjach i składniach. Są to pliki JSON zawierające 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 muszą być podane podczas korzystania z szablonu. Na przykład pełną definicję puli można umieścić w treści i tylko jeden parametr zdefiniowany dla poolIdelementu ; dlatego należy podać tylko ciąg identyfikatora puli w celu utworzenia puli. Treść szablonu może zostać utworzona przez osobę znającą usługę Batch i aplikacje, 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 zadania, który tworzy wiele zadań dla zadania przy użyciu wspólnej definicji zadania. Te konstrukcje unikają 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 opcjonalnie umożliwiają kopiowanie oprogramowania do węzłów puli przy użyciu menedżerów pakietów. Menedżer pakietów i identyfikator pakietu są określone w odwołaniu do pakietu. Deklarując co najmniej jeden pakiet, należy unikać tworzenia skryptu, który pobiera wymagane pakiety, instalując skrypt i uruchamiając 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 fabryki zadań: zamiatanie parametrów, zadanie na plik i zbieranie 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 na potrzeby 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 został nazwany 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 klasycznej usługi 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 przekazać szablon:

  1. W eksploratorze usługi Batch wybierz pozycję Galeria>szablonów lokalnych.
  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 interfejsu wiersza polecenia Azure Batch abstrahuje od transferu plików i korzysta z 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 określonym wcześniej szablonie zadania grupa plików ffmpeg-input jest określona dla fabryki zadań jako lokalizacja ź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 uruchamiającego 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 z wiedzą na temat platformy Azure, usługi Batch i aplikacji, 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 o usłudze Batch i aplikacjach mogą używać 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