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

Upozornění

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

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

Vytvářejte a používejte soubory šablon JSON pomocí Azure CLI k vytváření fondů, úloh a úkolů služby 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 úloh.

Poznámka

Soubory JSON nepodporují stejné funkce jako šablony Azure Resource Manager. Mají být formátovány jako nezpracované tělo 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 Manager. Viz rozšíření rozhraní příkazového řádku Azure Batch pro Windows, Mac a Linux.

Přehled

Rozšíření Azure CLI umožňuje používat službu Batch od konce do konce uživateli, kteří nejsou vývojáři. Jenom 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 si výsledná výstupní data. Nevyžaduje se žádný další kód. Spusťte příkazy rozhraní příkazového řádku přímo nebo je integrujte do skriptů.

Šablony služby Batch využívají stávající podporu 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 je možné definovat. Při použití šablony jsou k vytvoření položky zadány pouze hodnoty parametrů s jinými hodnotami vlastností položky zadanými v textu šablony. Uživatel, který rozumí službě Batch a aplikacím, které má služba Batch spouštět, může vytvářet šablony a určovat hodnoty vlastností fondu, úlohy a úlohy. Uživatel, který je méně obeznámený se službou Batch nebo aplikacemi, musí zadat pouze hodnoty pro definované parametry.

  • Objekty pro vytváření úkolů úloh vytvářejí jeden nebo více úkolů přidružených k úloze, takže není potřeba vytvářet mnoho definic úkolů a výrazně se zjednoduší 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. Do a z tohoto účtu úložiště můžete přenášet soubory pomocí Azure CLI bez kódování a bez 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í rozhraní příkazového řádku Azure Batch můžete uživateli usnadnit volání ffmpegu k překódování zdrojových videosouborů do různých rozlišení. Proces může vypadat takto:

  • Vytvořte šablonu fondu. Uživatel vytvářející šablonu ví, jak volat aplikaci ffmpeg a její požadavky; Určují příslušný operační systém, velikost virtuálního počítače, způsob instalace nástroje ffmpeg (například z balíčku aplikace nebo pomocí správce balíčků) a další hodnoty vlastností fondu. Parametry se vytvářejí, 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 vytvářející šablonu ví, jak je třeba ffmpeg vyvolat k překó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 úlohou vyžadovanou pro každý vstupní soubor.
  • Koncový uživatel se sadou videosouborů k překódování nejprve vytvoří fond pomocí šablony fondu a určí pouze ID fondu a počet požadovaných virtuálních počítačů. Potom můžou nahrát zdrojové soubory k překódová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 vygenerovaným jedním úkolem na každý vstupní soubor. Nakonec lze překódované výstupní soubory stáhnout.

Instalace

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

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.

Abyste mohli 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

Azure Batch šablony se funkčností a syntaxí podobají šabloně Azure Resource Manager. Jsou to soubory JSON, které obsahují názvy a hodnoty vlastností položek, ale přidávají následující hlavní koncepty:

  • Parametry: Umožňuje zadat hodnoty vlastností v základní části, přičemž při použití šablony je potřeba zadat pouze hodnoty parametrů. Například úplná definice fondu může být umístěna v těle a pouze jeden parametr definovaný pro poolId; proto je potřeba k vytvoření fondu dodat pouze řetězec ID fondu. Tělo šablony může vytvořit někdo, kdo má znalost služby Batch a aplikací, které mají být spuštěny službou Batch; Při použití šablony musí být zadány pouze hodnoty parametrů definovaných autorem. To umožňuje uživatelům bez podrobných znalostí služby Batch a/nebo aplikací používat šablony.
  • Proměnné: Umožňuje 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 také ji lépe udržovat díky tomu, že mají jedno umístění pro změnu vlastností.
  • Konstrukce vyšší úrovně: V šabloně jsou k dispozici některé konstruktory vyšší úrovně, které ještě nejsou k dispozici v rozhraních API služby Batch. Například objekt pro vytváření úkolů lze definovat v šabloně úlohy, která pro úlohu vytvoří více úkolů pomocí společné definice úkolu. Tyto konstruktory se vyhýbají nutnosti dynamického vytváření více souborů JSON, například jednoho souboru na úlohu, a také vytváření souborů skriptů pro instalaci aplikací prostřednictvím správce balíčků.

Šablony fondů

Š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 zadané 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, instalaci skriptu a spuštění skriptu 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 měl soubor šablony název pool-ffmpeg.json, vyvolejte šablonu 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 parametrů poolId a nodeCount . Parametry můžete také zadat do souboru JSON. Příklad:

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

Pokud měl soubor JSON parametrů název pool-parameters.json, vyvolejte šablonu 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ý vytvoří více úkolů pro úlohu z jedné definice úkolu. Podporují se tři typy vytváření úloh: parametrické uklidování, úkol na soubor a kolekce úkolů.

Následuje příklad šablony, která vytvoří úlohu pro překódování videosouborů MP4 s ffmpegem na jedno ze dvou nižších rozlišení. Vytvoří jeden úkol pro každý zdrojový videosoubor. Další informace o skupinách souborů pro vstup a výstup úloh najdete v tématu Skupiny souborů a přenos souborů .

{
    "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 měl soubor šablony název job-ffmpeg.json, vyvolejte šablonu 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 také zadat do 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 tak fond nebo úlohu Služby Batch. Můžete si také vybrat z předdefinovaných šablon fondů a úloh v galerii Batch Exploreru.

Nahrání šablony:

  1. V Batch Exploreru vyberte Galerie>Místní šablony.
  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í a výstupní soubory přenášejí 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 k jednotlivým účtům Batch.

Skupina souborů odpovídá kontejneru vytvořenému v účtu úložiště Azure. Skupina souborů může mít 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 stahování 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í zadat soubory uložené ve skupinách souborů pro kopírování do uzlů fondu nebo mimo uzly 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í, kam se překódované výstupní soubory kopírují z uzlu, který spouští jednotlivé úlohy.

Souhrn

Podpora šablon a přenosu 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, na uživatele, kteří nepotřebují vyvíjet kód pomocí rozhraní BATCH API, 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é služba Batch spustí, vytvářet šablony pro vytváření fondů a úloh. Pomocí parametrů šablon můžou šablony používat uživatelé bez podrobných znalostí služby Batch a aplikací.

Vyzkoušejte rozšíření Batch pro Azure CLI a poskytněte nám zpětnou vazbu nebo návrhy, a to buď v komentářích k tomuto článku, nebo prostřednictvím úložiště Komunity služby Batch.

Další kroky

  • Podívejte se na podrobnou dokumentaci k instalaci a použití, ukázky a zdrojový kód v úložišti Azure GitHub.
  • Přečtěte si další informace o vytváření a správě prostředků Batch pomocí Batch Exploreru .