Megosztás a következőn keresztül:


Azure Batch CLI-sablonok és fájlátvitel használata

Figyelmeztetés

A Batch Azure CLI-bővítmény 2024. szeptember 30-án megszűnik. Távolítsa el a bővítményt a paranccsal az extension remove --name azure-batch-cli-extensions.

Az Azure CLI Batch-bővítményének használatával a felhasználók kódírás nélkül futtathatják a Batch-feladatokat.

JSON-sablonfájlok létrehozása és használata az Azure CLI-vel Batch-készletek, -feladatok és -feladatok létrehozásához. A parancssori felület bővítményparancsaival egyszerűen feltölthet feladatbemeneti fájlokat a Batch-fiókhoz társított tárfiókba, és letöltheti a feladat kimeneti fájljait.

Megjegyzés

A JSON-fájlok nem támogatják ugyanazokat a funkciókat, mint az Azure Resource Manager-sablonok. Ezeket úgy kell formázni, mint a nyers REST-kérés törzsét. A CLI-bővítmény nem módosítja a meglévő parancsokat, de rendelkezik egy hasonló sablonbeállítással, amely részleges Azure Resource Manager-sablonfunkciókat ad hozzá. Lásd: Azure Batch CLI-bővítmények Windowshoz, Machez és Linuxhoz.

Áttekintés

Az Azure CLI bővítménye lehetővé teszi, hogy a Batchet olyan felhasználók használják, akik nem fejlesztők. Csak CLI-parancsokkal létrehozhat egy készletet, feltöltheti a bemeneti adatokat, feladatokat és kapcsolódó feladatokat hozhat létre, és letöltheti az eredményként kapott kimeneti adatokat. Nincs szükség további kódra. Futtassa közvetlenül a CLI-parancsokat, vagy integrálja őket szkriptekbe.

A Batch-sablonok az Azure CLI JSON-fájlokhoz készült meglévő Batch-támogatására épülnek, hogy tulajdonságértékeket adjanak meg készletek, feladatok, feladatok és egyéb elemek létrehozásakor. A Batch-sablonok a következő képességeket adhatja hozzá:

  • Paraméterek definiálhatók. A sablon használata esetén csak a paraméterértékek vannak megadva az elem létrehozásához, a sablon törzsében megadott egyéb elemtulajdonság-értékekkel. A Batchet és a Batch által futtatandó alkalmazásokat ismerő felhasználók sablonokat hozhatnak létre, megadva a készlet, a feladat és a tevékenységtulajdonságok értékeit. A Batchet és/vagy az alkalmazásokat kevésbé ismerő felhasználóknak csak a megadott paraméterek értékeit kell megadniuk.

  • A feladat-feladat-előállítók létrehoznak egy vagy több feladatot egy feladathoz, így nem kell sok feladatdefiníciót létrehozni, és jelentősen leegyszerűsíteni a feladatbeküldést.

A feladatok általában bemeneti adatfájlokat használnak, és kimeneti adatfájlokat hoznak létre. Alapértelmezés szerint egy tárfiók van társítva az egyes Batch-fiókokkal. A tárfiókba és a tárfiókból átviheti a fájlokat az Azure CLI használatával, kódolás és tárolási hitelesítő adatok nélkül.

Az ffmpeg például egy népszerű alkalmazás, amely hang- és videofájlokat dolgoz fel. A Azure Batch CLI-bővítmény használatával megkönnyítheti a felhasználók számára, hogy meghívják az ffmpeg-et a forrás videofájlok különböző felbontásokra való átkódolására. A folyamat a következőképpen nézhet ki:

  • Hozzon létre egy készletsablont. A sablont létrehozó felhasználó tudja, hogyan hívja meg az ffmpeg alkalmazást és annak követelményeit; megadják a megfelelő operációsrendszer-, virtuálisgép-méretet, az ffmpeg telepítésének módját (például egy alkalmazáscsomagból vagy egy csomagkezelő használatával), valamint egyéb készlettulajdonság-értékeket. A paramétereket a rendszer úgy hozza létre, hogy a sablon használatakor csak a készlet azonosítóját és a virtuális gépek számát kell megadni.
  • Hozzon létre egy feladatsablont. A sablont létrehozó felhasználó tudja, hogyan kell meghívni az ffmpeg-et a forrásvideó átkódolásához egy másik felbontásra, és megadja a feladat parancssorát; azt is tudják, hogy a forrásvideó-fájlokat tartalmazó mappa bemeneti fájlonként kötelező feladattal rendelkezik.
  • Az átkódolandó videofájlokkal rendelkező végfelhasználók először létrehoznak egy készletet a készletsablon használatával, amely csak a készlet azonosítóját és a szükséges virtuális gépek számát adja meg. Ezután feltölthetik a forrásfájlokat az átkódoláshoz. Ezután a feladatsablon használatával elküldhető egy feladat, amely csak a feltöltött forrásfájlok készletazonosítóját és helyét adja meg. A Batch-feladat létrejön, és bemeneti fájlonként egy feladat jön létre. Végül a kódolt kimeneti fájlok letölthetők.

Telepítés

A Azure Batch CLI-bővítmény telepítéséhez először telepítse az Azure CLI 2.0-t, vagy futtassa az Azure CLI-t az Azure Cloud Shell.

Telepítse a Batch-bővítmény legújabb verzióját az alábbi Azure CLI-paranccsal:

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

A Batch CLI-bővítményről és a további telepítési lehetőségekről a GitHub-adattárban talál további információt.

A CLI-bővítmény funkcióinak használatához szüksége van egy Azure Batch fiókra, valamint a fájlok tárolóba és tárolóból történő átvitelére szolgáló parancsokhoz egy társított tárfiókra.

Ha az Azure CLI-vel szeretne bejelentkezni egy Batch-fiókba, olvassa el a Batch-erőforrások kezelése az Azure CLI-vel című témakört.

Sablonok

Azure Batch sablonok hasonlóak az Azure Resource Manager-sablonokhoz, funkciókban és szintaxisban. Ezek olyan JSON-fájlok, amelyek elemtulajdonságneveket és -értékeket tartalmaznak, de a következő fő fogalmakat tartalmazzák:

  • Paraméterek: Lehetővé teszi a tulajdonságértékek megadását egy törzsszakaszban, és csak paraméterértékeket kell megadni a sablon használatakor. Például egy készlet teljes definíciója elhelyezhető a törzsben, és csak egy paraméter definiálható poolIda számára; ezért a készlet létrehozásához csak egy készletazonosító sztringet kell megadni. A sablon törzsét olyan személy hozhatja létre, aki ismeri a Batchet és a Batch által futtatandó alkalmazásokat; csak a szerző által definiált paraméterek értékeit kell megadni a sablon használatakor. Ez lehetővé teszi a részletes Batch- és/vagy alkalmazásismeretek nélküli felhasználók számára a sablonokat.
  • Változók: Lehetővé teszi, hogy az egyszerű vagy összetett paraméterértékek egy helyen legyenek megadva, és a sablon törzsében egy vagy több helyen legyenek felhasználva. A változók leegyszerűsíthetik és csökkenthetik a sablon méretét, valamint karbantarthatóbbá tehetik, ha egyetlen helyen módosítják a tulajdonságokat.
  • Magasabb szintű szerkezetek: Egyes magasabb szintű szerkezetek elérhetők a sablonban, amelyek még nem érhetők el a Batch API-kban. Egy feladat-előállító például meghatározható egy feladatsablonban, amely több feladatot hoz létre a feladathoz egy közös feladatdefiníció használatával. Ezek a szerkezetek nem igényelnek kódolást több JSON-fájl dinamikus létrehozásához, például feladatonként egy fájl létrehozásához, valamint szkriptfájlok létrehozásához az alkalmazások csomagkezelőn keresztüli telepítéséhez.

Készletsablonok

A készletsablonok támogatják a paraméterek és változók szabványos sablonképességeit. Emellett támogatják a csomaghivatkozásokat is, amelyek opcionálisan lehetővé teszik, hogy a szoftvereket csomagkezelők használatával másolják a készletcsomópontokra. A csomagkezelő és a csomagazonosító a csomagreferenciában van megadva. Egy vagy több csomag deklarálásával elkerülheti, hogy olyan szkriptet hozzon létre, amely lekéri a szükséges csomagokat, telepíti a szkriptet, és futtatja a szkriptet az egyes készletcsomópontokon.

Az alábbiakban egy olyan sablont mutatunk be, amely linuxos virtuális gépek készletét hozza létre a telepített ffmpeg használatával. A használatához csak egy készletazonosító sztringet és a készletben lévő virtuális gépek számát adja meg:

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

Ha a sablonfájl neve pool-ffmpeg.json, akkor a következő módon hívja meg a sablont:

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

A parancssori felület arra kéri, hogy adja meg a és nodeCount a poolId paraméterek értékeit. A paramétereket egy JSON-fájlban is megadhatja. Például:

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

Ha a JSON-paraméterfájl neve pool-parameters.json, akkor a következő módon hívja meg a sablont:

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

Feladatsablonok

A feladatsablonok támogatják a paraméterek és változók szabványos sablonképességeit. Emellett támogatják a feladat-előállító szerkezetét is, amely több feladatot hoz létre egy feladathoz egy tevékenységdefinícióból. A feladat-előállító három típusa támogatott: paraméteres takarítás, fájlonkénti tevékenység és feladatgyűjtemény.

Az alábbiakban egy olyan sablont mutatunk be, amely létrehoz egy feladatot az MP4 videofájlok két kisebb felbontás egyikére való átkódolásához. Forrásvideó-fájlonként egy feladatot hoz létre. A feladat bemenetéről és kimenetéről további információt a Fájlcsoportok és fájlátvitel című témakörben talál.

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

Ha a sablonfájl neve job-ffmpeg.json, akkor a következő módon hívja meg a sablont:

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

Mint korábban, a parancssori felület arra kéri, hogy adjon meg értékeket a paraméterekhez. A paramétereket egy JSON-fájlban is megadhatja.

Sablonok használata a Batch Explorerben

Batch CLI-sablont feltölthet az asztali Batch Explorer alkalmazásba, hogy létrehozhasson egy Batch-készletet vagy -feladatot. Az előre definiált készlet és feladatsablonok közül is választhat a Batch Explorer katalógusában.

Sablon feltöltése:

  1. A Batch Explorerben válassza aHelyi sablonokkatalógusa> lehetőséget.
  2. Jelöljön ki vagy húzzon el egy helyi készletet vagy feladatsablont.
  3. Válassza a Sablon használata lehetőséget, és kövesse a képernyőn megjelenő utasításokat.

Fájlcsoportok és fájlátvitel

A legtöbb feladat és feladat bemeneti fájlokat igényel, és kimeneti fájlokat hoz létre. A bemeneti fájlok és a kimeneti fájlok általában az ügyfélről a csomópontra vagy a csomópontról az ügyfélre kerülnek át. A Azure Batch CLI-bővítmény elvonja a fájlátvitelt, és az egyes Batch-fiókokhoz társítható tárfiókot használja.

A fájlcsoportok megegyeznek az Azure Storage-fiókban létrehozott tárolóval. A fájlcsoportnak lehetnek almappái.

A Batch CLI-bővítmény parancsokat biztosít a fájlok ügyfélről egy adott fájlcsoportba való feltöltésére, valamint fájlok letöltésére a megadott fájlcsoportból egy ügyfélbe.

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

A készlet- és feladatsablonok lehetővé teszik a fájlcsoportokban tárolt fájlok megadását a készletcsomópontokra vagy a készletcsomópontokról egy fájlcsoportba való visszamásoláshoz. A korábban megadott feladatsablonban például az ffmpeg-input fájlcsoport van megadva a feladat-előállítóhoz a forrás videofájlok helyeként, amelyet átkódolás céljából a csomópontra másoltak. Az ffmpeg-output fájlcsoport az a hely, ahol az egyes feladatokat futtató csomópontról átmásolják a transzkódolt kimeneti fájlokat.

Összefoglalás

A sablon- és fájlátviteli támogatás jelenleg csak az Azure CLI-hez lett hozzáadva. A cél az, hogy kibővítse a Batchet használó célközönséget az olyan felhasználók számára, akiknek nem kell kódot fejleszteni a Batch API-kkal, például kutatókkal és informatikai felhasználókkal. Kódolás nélkül az Azure- és Batch-ismeretekkel rendelkező felhasználók és a Batch által futtatandó alkalmazások sablonokat hozhatnak létre a készlethez és a feladatok létrehozásához. A sablonparaméterekkel a Batch és az alkalmazások részletes ismerete nélküli felhasználók használhatják a sablonokat.

Próbálja ki az Azure CLI Batch-bővítményét, és adjon nekünk visszajelzést vagy javaslatokat a cikk megjegyzéseiben vagy a Batch közösségi adattárában.

Következő lépések

  • A részletes telepítési és használati dokumentációt, mintákat és forráskódot az Azure GitHub-adattárban tekintheti meg.
  • További információ a Batch Explorer használatáról Batch-erőforrások létrehozásához és kezeléséhez.