Sdílet prostřednictvím


Použití šablon rozhraní příkazového řádku služby Azure Batch a přenosu souborů

Výstraha

Rozšíření Azure CLI služby Batch bude vyřazeno 30. září 2024. Odinstalujte rozšíření pomocí příkazu az extension remove --name azure-batch-cli-extensions.

Pomocí rozšíření Batch do Azure CLI můžou uživatelé spouštět úlohy Batch bez psaní kódu.

Vytvářejte a používejte soubory šablon JSON pomocí Azure CLI k vytváření fondů, úloh a úkolů v Azure Batch. Pomocí příkazů rozšíření rozhraní příkazového řádku můžete snadno nahrát vstupní soubory úloh do účtu úložiště přidruženého k účtu Batch a stáhnout výstupní soubory úlohy.

Poznámka:

Soubory JSON nepodporují stejné funkce jako šablony Azure Resource Manageru. Mají být formátované jako text nezpracovaného požadavku REST. Rozšíření rozhraní příkazového řádku nemění žádné existující příkazy, ale má podobnou možnost šablony, která přidává částečné funkce šablony Azure Resource Manageru. Viz rozšíření Azure Batch CLI pro Windows, Mac a Linux.

Přehled

Rozšíření služby Azure CLI umožňuje využití Batch od začátku do konce pro uživatele, kteří nejsou vývojáři. Pouze pomocí příkazů rozhraní příkazového řádku můžete vytvořit fond, nahrát vstupní data, vytvořit úlohy a přidružené úkoly a stáhnout výsledná výstupní data. Nevyžaduje se žádný další kód. Příkazy rozhraní příkazového řádku spusťte přímo nebo je integrujte do skriptů.

Šablony služby Batch vycházejí ze stávající podpory služby Batch v Azure CLI pro soubory JSON a určují hodnoty vlastností při vytváření fondů, úloh, úkolů a dalších položek. Šablony služby Batch přidávají následující možnosti:

  • Parametry lze definovat. Při použití šablony jsou zadány pouze hodnoty parametrů pro vytvoření položky s jinými hodnotami vlastností položky zadanými v těle šablony. Uživatel, který rozumí službě Batch a aplikacím, které má služba Batch spouštět, může vytvářet šablony, určovat hodnoty vlastností fondu, úlohy a úkolu. Uživatel méně obeznámený se službou Batch a/nebo aplikace musí zadat pouze hodnoty definovaných parametrů.

  • Továrny úloh vytvářejí jeden nebo více úkolů přidružených k úloze, takže nemusíte vytvářet mnoho definic úkolů a výrazně zjednodušují odesílání úloh.

Úlohy obvykle používají vstupní datové soubory a vytvářejí výstupní datové soubory. Účet úložiště je ve výchozím nastavení přidružený ke každému účtu Batch. Soubory můžete přenášet do a z tohoto účtu úložiště pomocí Azure CLI bez kódování a přihlašovacích údajů k úložišti.

Například ffmpeg je oblíbená aplikace, která zpracovává zvukové soubory a videosoubory. Pomocí rozšíření Azure Batch CLI můžete uživateli usnadnit volání ffmpeg pro transkódování zdrojových videosouborů do různých rozlišení. Proces může vypadat takto:

  • Vytvořte šablonu skupiny. Uživatel, který vytváří šablonu, ví, jak volat aplikaci ffmpeg a její požadavky; určí odpovídající operační systém, velikost virtuálního počítače, způsob instalace nástroje ffmpeg (z balíčku aplikace nebo použití správce balíčků, například) a další hodnoty vlastností fondu. Parametry se vytvoří, takže při použití šablony je potřeba zadat pouze ID fondu a počet virtuálních počítačů.
  • Vytvořte šablonu úlohy. Uživatel, který vytváří šablonu, ví, jak je potřeba vyvolat ffmpeg pro transkódování zdrojového videa do jiného rozlišení a určuje příkazový řádek úkolu; také vědí, že existuje složka obsahující zdrojové videosoubory s úkolem požadovaným pro každý vstupní soubor.
  • Koncový uživatel se sadou videosouborů, které se mají nejprve překódovat, vytvoří fond pomocí šablony fondu a zadá jenom ID fondu a požadovaný počet virtuálních počítačů. Poté mohou nahrát zdrojové soubory k transkodování. Úlohu pak můžete odeslat pomocí šablony úlohy a zadat pouze ID fondu a umístění nahraných zdrojových souborů. Vytvoří se úloha Batch s jednou úlohou pro každý vstupní soubor, který se generuje. Nakonec je možné stáhnout překódované výstupní soubory.

Instalace

Pokud chcete nainstalovat rozšíření Azure Batch CLI, nejprve nainstalujte Azure CLI 2.0 nebo spusťte Azure CLI v Azure Cloud Shellu.

Nainstalujte nejnovější verzi rozšíření Batch pomocí následujícího příkazu Azure CLI:

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

Další informace o rozšíření Batch CLI a dalších možnostech instalace najdete v úložišti GitHub.

Pokud chcete používat funkce rozšíření rozhraní příkazového řádku, potřebujete účet Azure Batch a pro příkazy, které přenášejí soubory do a z úložiště, propojený účet úložiště.

Pokud se chcete přihlásit k účtu Batch pomocí Azure CLI, přečtěte si téma Správa prostředků služby Batch pomocí Azure CLI.

Šablony

Šablony Azure Batch se podobají šabloně Azure Resource Manageru v funkcích a syntaxi. Jedná se o soubory JSON, které obsahují názvy a hodnoty vlastností položek, ale přidávají následující hlavní koncepty:

  • Parametry: Povolit zadání hodnot vlastností v části textu, přičemž při použití šablony je potřeba zadat pouze hodnoty parametrů. Úplnou definici fondu lze například umístit do těla a definovat pouze jeden parametr pro poolId; k vytvoření fondu je proto potřeba dodat pouze řetězec ID fondu. Tělo šablony může vytvořit někdo se znalostmi služby Batch a aplikací, které má služba Batch spouštět; Při použití šablony musí být zadány pouze hodnoty pro parametry definované autorem. To umožňuje uživatelům, kteří nemají podrobné znalosti služby Batch a/nebo aplikace, používat šablony.
  • Proměnné: Povolí zadání jednoduchých nebo složitých hodnot parametrů na jednom místě a použití na jednom nebo více místech v těle šablony. Proměnné můžou zjednodušit a zmenšit velikost šablony a zároveň zajistit větší údržbu díky tomu, že má jedno umístění pro změnu vlastností.
  • Konstrukce vyšší úrovně: Některé konstrukce vyšší úrovně jsou k dispozici v šabloně, které ještě nejsou k dispozici v rozhraních API služby Batch. Například objekt pro vytváření úloh lze definovat v šabloně úlohy, která pro úlohu vytvoří více úkolů pomocí společné definice úkolu. Tyto konstruktory se vyhýbají nutnosti dynamicky vytvářet více souborů JSON, například jeden soubor na úlohu, a také vytvářet soubory skriptů pro instalaci aplikací prostřednictvím správce balíčků.

Šablony bazénu

Šablony fondů podporují standardní možnosti šablon parametrů a proměnných. Podporují také odkazy na balíčky, které volitelně umožňují kopírování softwaru do uzlů fondu pomocí správců balíčků. Správce balíčků a ID balíčku jsou zadány v odkazu na balíček. Deklarováním jednoho nebo více balíčků se vyhnete vytvoření skriptu, který získá požadované balíčky, nainstaluje skript a spustí skript na každém uzlu fondu.

Následuje příklad šablony, která vytvoří fond virtuálních počítačů s Linuxem s nainstalovaným nástrojem ffmpeg. Pokud ho chcete použít, zadejte pouze řetězec ID fondu a počet virtuálních počítačů ve fondu:

{
    "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"
                }
            ]
        }
    }
}

Pokud byl soubor šablony pojmenován pool-ffmpeg.json, pak šablonu vyvolejte následujícím způsobem:

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

Rozhraní příkazového řádku vás vyzve k zadání hodnot pro parametry poolId a nodeCount. Parametry můžete zadat také v souboru JSON. Například:

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

Pokud byl soubor JSON parametrů pojmenován pool-parameters.json, pak šablonu vyvolejte následujícím způsobem:

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

Šablony úloh

Šablony úloh podporují standardní možnosti šablon parametrů a proměnných. Podporují také konstruktor objektu pro vytváření úloh , který vytváří více úkolů pro úlohu z jedné definice úkolu. Podporují se tři typy úloh: parametrická varianta, úkol na jeden soubor a kolekce úkolů.

Následuje příklad šablony, která vytvoří úlohu pro transkódování videosouborů MP4 s ffmpeg na jedno ze dvou nižších rozlišení. Vytvoří jeden úkol pro každý zdrojový videosoubor. Podívejte se na Skupiny souborů a přenos souborů pro více informací o skupinách souborů pro vstup a výstup úloh.

{
    "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"
        }
    }
}

Pokud byl soubor šablony pojmenován job-ffmpeg.json, pak šablonu vyvolejte následujícím způsobem:

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

Stejně jako předtím vás rozhraní příkazového řádku vyzve k zadání hodnot parametrů. Parametry můžete zadat také v souboru JSON.

Použití šablon v Batch Exploreru

Šablonu rozhraní příkazového řádku služby Batch můžete nahrát do desktopové aplikace Batch Explorer a vytvořit fond nebo úlohu Batch. Můžete také vybrat z předdefinovaných fondů a šablon úloh v galerii Batch Exploreru.

Nahrání šablony:

  1. V Batch Exploreru vybertemístní šablonygalerie>.
  2. Vyberte nebo přetáhněte místní fond nebo šablonu úlohy.
  3. Vyberte Použít tuto šablonu a postupujte podle pokynů na obrazovce.

Skupiny souborů a přenos souborů

Většina úloh a úkolů vyžaduje vstupní soubory a vytváří výstupní soubory. Obvykle se vstupní soubory a výstupní soubory přenesou z klienta do uzlu nebo z uzlu do klienta. Rozšíření Azure Batch CLI abstrahuje přenos souborů a využívá účet úložiště, který můžete přidružit ke každému účtu Batch.

Skupina souborů odpovídá kontejneru vytvořenému v účtu úložiště Azure. Skupina souborů může obsahovat podsložky.

Rozšíření Rozhraní příkazového řádku služby Batch poskytuje příkazy pro nahrání souborů z klienta do zadané skupiny souborů a stažení souborů ze zadané skupiny souborů 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

Šablony fondů a úloh umožňují specifikovat soubory uložené ve skupinách souborů pro kopírování do uzlů fondu nebo z uzlů fondu zpět do skupiny souborů. Například v dříve zadané šabloně úlohy je skupina souborů ffmpeg-input určena pro objekt pro vytváření úloh jako umístění zdrojových videosouborů zkopírovaných do uzlu pro překódování. Skupina souborů ffmpeg-output je umístění, kde se transkódované výstupní soubory zkopírují z uzlu, na kterém běží jednotlivé úlohy.

Shrnutí

Podpora pro přenos šablony a souborů se v současné době přidala jenom do Azure CLI. Cílem je rozšířit cílovou skupinu, která může službu Batch používat pro uživatele, kteří nepotřebují vyvíjet kód pomocí rozhraní API služby Batch, jako jsou výzkumní pracovníci a uživatelé IT. Bez kódování můžou uživatelé se znalostmi Azure, Batch a aplikací, které má služba Batch spouštět, vytvářet šablony pro vytváření fondů a úloh. Pomocí parametrů šablon mohou uživatelé bez podrobných znalostí o službě Batch a aplikacích tyto šablony používat.

Vyzkoušejte rozšíření Batch pro Azure CLI a poskytněte nám jakékoli připomínky nebo návrhy, a to buď v komentářích k tomuto článku, nebo prostřednictvím úložiště Batch Community.

Další kroky