Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Warnung
Die Batch-Azure CLI-Erweiterung wird am 30. September 2024 eingestellt. Deinstallieren Sie die Erweiterung mit dem Befehl az extension remove --name azure-batch-cli-extensions
.
Mithilfe einer Batcherweiterung auf Azure CLI können Benutzer Batchaufträge ausführen, ohne Code zu schreiben.
Erstellen und Verwenden von JSON-Vorlagendateien mit Azure CLI zum Erstellen von Batchpools, Aufträgen und Aufgaben. Verwenden Sie CLI-Erweiterungsbefehle, um Auftragseingabedateien auf einfache Weise in das Speicherkonto hochzuladen, das dem Batchkonto zugeordnet ist, und Laden Sie Auftragsausgabedateien herunter.
Hinweis
JSON-Dateien unterstützen nicht dieselbe Funktionalität wie Azure Resource Manager-Vorlagen. Sie sollen wie der unformatierte REST-Anforderungstext formatiert werden. Die CLI-Erweiterung ändert keine vorhandenen Befehle, verfügt aber über eine ähnliche Vorlagenoption, die partielle Azure Resource Manager-Vorlagenfunktionen hinzufügt. Siehe Azure Batch CLI-Erweiterungen für Windows, Mac und Linux.
Überblick
Eine Erweiterung für die Azure CLI ermöglicht es Endbenutzern ohne Entwicklerkenntnisse, Batch vollständig zu nutzen. Mit nur CLI-Befehlen können Sie einen Pool erstellen, Eingabedaten hochladen, Aufträge und zugehörige Aufgaben erstellen und die resultierenden Ausgabedaten herunterladen. Es ist kein zusätzlicher Code erforderlich. Führen Sie die CLI-Befehle direkt aus, oder integrieren Sie sie in Skripts.
Batchvorlagen basieren auf der vorhandenen Batchunterstützung in der Azure CLI für JSON-Dateien, um Eigenschaftswerte beim Erstellen von Pools, Aufträgen, Aufgaben und anderen Elementen anzugeben. Batchvorlagen fügen die folgenden Funktionen hinzu:
Parameter können definiert werden. Wenn die Vorlage verwendet wird, werden nur die Parameterwerte angegeben, um das Element zu erstellen, wobei andere Elementeigenschaftenwerte im Vorlagentext angegeben sind. Ein Benutzer, der den Batch und die anwendungen versteht, die von Batch ausgeführt werden sollen, kann Vorlagen erstellen und Pool-, Auftrags- und Aufgabeneigenschaftswerte angeben. Ein Benutzer, der weniger mit Batch und/oder den Anwendungen vertraut ist, muss nur die Werte für die definierten Parameter angeben.
Auftragsaufgabenfabriken erstellen eine oder mehrere Aufgaben, die einem Auftrag zugeordnet sind, und vermeiden die Notwendigkeit, dass viele Aufgabendefinitionen erstellt und die Auftragsübermittlung erheblich vereinfacht werden müssen.
Aufträge verwenden in der Regel Eingabedatendateien und erzeugen Ausgabedatendateien. Ein Speicherkonto ist standardmäßig jedem Batchkonto zugeordnet. Mit der Azure CLI können Sie Dateien in dieses Speicherkonto und aus ihm heraus übertragen, ohne dass eine Programmierung oder Speicheranmeldeinformationen erforderlich sind.
Beispielsweise ist ffmpeg eine beliebte Anwendung, die Audio- und Videodateien verarbeitet. Mithilfe der Azure Batch CLI-Erweiterung können Sie es einem Benutzer erleichtern, ffmpeg aufzurufen, um Quellvideodateien in verschiedene Auflösungen zu transcodieren. Der Prozess sieht möglicherweise wie folgt aus:
- Erstellen Sie eine Poolvorlage. Der Benutzer, der die Vorlage erstellt, weiß, wie die ffmpeg-Anwendung und seine Anforderungen aufgerufen werden; sie geben die entsprechende Betriebssystem-, VM-Größe an, wie ffmpeg installiert wird (z. B. aus einem Anwendungspaket oder mithilfe eines Paket-Managers), und andere Pooleigenschaftswerte. Parameter werden erstellt, sodass beim Verwenden der Vorlage nur die Pool-ID und die Anzahl der virtuellen Computer angegeben werden müssen.
- Erstellen Sie eine Auftragsvorlage. Der Benutzer, der die Vorlage erstellt, weiß, wie ffmpeg aufgerufen werden muss, um Quellvideos in eine andere Auflösung zu transcodieren und die Befehlszeile für die Aufgabe festzulegen. sie wissen auch, dass es einen Ordner mit den Quellvideodateien mit einer Aufgabe gibt, die pro Eingabedatei erforderlich ist.
- Ein Endbenutzer mit einer Reihe von Videodateien, die transcodiert werden sollen, erstellt zuerst einen Pool mithilfe der Poolvorlage, wobei nur die Pool-ID und die Anzahl der erforderlichen virtuellen Computer angegeben wird. Anschließend können sie die Quelldateien zum Transcodieren hochladen. Ein Auftrag kann dann mithilfe der Auftragsvorlage übermittelt werden, wobei nur die Pool-ID und der Speicherort der hochgeladenen Quelldateien angegeben werden. Der Batchauftrag wird erstellt, wobei pro Eingabedatei eine Aufgabe generiert wird. Schließlich können die transcodierten Ausgabedateien heruntergeladen werden.
Installation
Um die Azure Batch CLI-Erweiterung zu installieren, installieren Sie zuerst die Azure CLI 2.0, oder führen Sie die Azure CLI in Azure Cloud Shell aus.
Installieren Sie die neueste Version der Batcherweiterung mit dem folgenden Azure CLI-Befehl:
az extension add --name azure-batch-cli-extensions
Weitere Informationen über die Batch CLI-Erweiterung und weitere Installationsoptionen finden Sie im GitHub-Repository.
Um die CLI-Erweiterungsfeatures zu verwenden, benötigen Sie ein Azure Batch-Konto und für die Befehle, die Dateien an und vom Speicher übertragen, ein verknüpftes Speicherkonto.
Informationen zum Anmelden bei einem Batchkonto mit der Azure CLI finden Sie unter "Verwalten von Batchressourcen mit Azure CLI".
Schablonen
Azure Batch-Vorlagen ähneln Azure Resource Manager-Vorlagen in Funktionalität und Syntax. Es handelt sich um JSON-Dateien, die Elementeigenschaftennamen und -werte enthalten, aber die folgenden Hauptkonzepte hinzufügen:
- Parameter: Zulassen, dass Eigenschaftswerte in einem Textabschnitt angegeben werden können, wobei nur Parameterwerte angegeben werden müssen, wenn die Vorlage verwendet wird. Beispielsweise könnte die vollständige Definition für einen Pool in den Text eingefügt und nur ein Parameter für
poolId
definiert werden. Für die Erstellung eines Pools müsste dann nur eine Pool-ID-Zeichenfolge angegeben werden. Die Vorlage kann von einer Person mit Kenntnissen über Batch und die damit auszuführenden Anwendungen erstellt werden; es müssen nur Werte für die vom Autor definierten Parameter angegeben werden, wenn die Vorlage verwendet wird. Auf diese Weise können Benutzer ohne eingehende Batch- und/oder Anwendungskenntnisse die Vorlagen verwenden. - Variablen: Zulassen, dass einfache oder komplexe Parameterwerte an einer Stelle angegeben und an einer oder mehreren Stellen im Vorlagentext verwendet werden. Variablen können die Größe der Vorlage vereinfachen und reduzieren sowie die Verwaltung verbessern, indem sie einen Speicherort zum Ändern von Eigenschaften haben.
- Konstrukte auf höherer Ebene: Einige Konstrukte auf höherer Ebene sind in der Vorlage verfügbar, die noch nicht in den Batch-APIs verfügbar sind. Beispielsweise kann eine Aufgabenfabrik in einer Auftragsvorlage definiert werden, die mehrere Aufgaben für den Auftrag mithilfe einer gemeinsamen Aufgabendefinition erzeugt. Diese Konstrukte vermeiden es, dass Code dynamisch mehrere JSON-Dateien erstellen muss, z. B. eine Datei pro Aufgabe, sowie Skriptdateien zum Installieren von Anwendungen über einen Paket-Manager.
Poolvorlagen
Poolvorlagen unterstützen die Standardvorlagenfunktionen von Parametern und Variablen. Sie unterstützen auch Paketverweise, die optional zulassen, dass Software mithilfe von Paketmanagern in Poolknoten kopiert werden kann. Der Paket-Manager und die Paket-ID werden in der Paketreferenz angegeben. Durch das Deklarieren eines oder mehrerer Pakete vermeiden Sie das Erstellen eines Skripts, das die erforderlichen Pakete abruft, das Skript installiert und das Skript auf jedem Poolknoten ausführt.
Im Folgenden finden Sie ein Beispiel für eine Vorlage, die einen Pool von Linux-VMs erstellt, auf denen ffmpeg installiert ist. Geben Sie zur Verwendung nur eine Pool-ID-Zeichenfolge und die Anzahl der virtuellen Computer im Pool an:
{
"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"
}
]
}
}
}
Wenn die Vorlagendatei pool-ffmpeg.jsonbenannt wurde, rufen Sie die Vorlage wie folgt auf:
az batch pool create --template pool-ffmpeg.json
Die CLI fordert Sie auf, Werte für die Parameter poolId
und nodeCount
anzugeben. Sie können die Parameter auch in einer JSON-Datei angeben. Beispiel:
{
"poolId": {
"value": "mypool"
},
"nodeCount": {
"value": 2
}
}
Wenn die JSON-Parameterdatei pool-parameters.jsonbenannt wurde, rufen Sie die Vorlage wie folgt auf:
az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json
Auftragsvorlagen
Auftragsvorlagen unterstützen die Standardvorlagenfunktionen von Parametern und Variablen. Sie unterstützen auch das Task Factory-Konstrukt , das mehrere Aufgaben für einen Auftrag aus einer Vorgangsdefinition erstellt. Es werden drei Arten von Task-Fabriken unterstützt: parametrischer Sweep, Aufgabe pro Datei und Aufgabensammlung.
Im Folgenden sehen Sie ein Beispiel für eine Vorlage, die einen Auftrag zum Transcodieren von MP4-Videodateien mit ffmpeg zu einer von zwei niedrigeren Auflösungen erstellt. Es erstellt eine Aufgabe pro Quellvideodatei. Weitere Informationen zu Dateigruppen und Dateiübertragungen für Auftragseingaben und -ausgaben finden Sie unter "Dateigruppen und Dateiübertragung".
{
"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"
}
}
}
Wenn die Vorlagendatei job-ffmpeg.jsonbenannt wurde, rufen Sie die Vorlage wie folgt auf:
az batch job create --template job-ffmpeg.json
Wie zuvor fordert die CLI Sie auf, Werte für die Parameter anzugeben. Sie können die Parameter auch in einer JSON-Datei angeben.
Verwenden von Vorlagen im Batch-Explorer
Sie können eine Batch CLI-Vorlage in die Batch-Explorer-Desktopanwendung hochladen, um einen Batchpool oder Auftrag zu erstellen. Sie können auch in der Batch-Explorer-Galerie aus vordefinierten Pool- und Auftragsvorlagen auswählen.
So laden Sie eine Vorlage hoch:
- Wählen Sie im Batch-Explorer Galerie>Lokale Vorlagen aus.
- Wählen Sie einen lokalen Pool oder eine Auftragsvorlage aus, oder verwenden Sie Drag & Drop.
- Wählen Sie "Diese Vorlage verwenden" aus, und folgen Sie den Anweisungen auf dem Bildschirm.
Dateigruppen und Dateiübertragung
Die meisten Aufträge und Aufgaben erfordern Eingabedateien und erzeugen Ausgabedateien. In der Regel werden Eingabedateien und Ausgabedateien entweder vom Client an den Knoten oder vom Knoten an den Client übertragen. Die Azure Batch CLI-Erweiterung abstrahiert die Dateiübertragung und verwendet das Speicherkonto, das Sie jedem Batchkonto zuordnen können.
Eine Dateigruppe entspricht einem Container, der im Azure-Speicherkonto erstellt wird. Die Dateigruppe kann Unterordner enthalten.
Die Batch CLI-Erweiterung stellt Befehle zum Hochladen von Dateien vom Client in eine angegebene Dateigruppe bereit und lädt Dateien aus der angegebenen Dateigruppe auf einen Client herunter.
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
Mit Pool- und Auftragsvorlagen können in Dateigruppen gespeicherte Dateien angegeben werden, die auf Poolknoten oder aus Poolknoten wieder in eine Dateigruppe kopiert werden sollen. In der oben angegebenen Auftragsvorlage wird die Dateigruppe ffmpeg-input beispielsweise für die Aufgabenfactory als Speicherort der Quellvideodateien angegeben, die zur Transcodierung auf den Knoten kopiert werden. Die Dateigruppe ffmpeg-output ist der Speicherort, an dem die transcodierten Ausgabedateien vom Knoten kopiert werden, auf dem die einzelnen Aufgaben ausgeführt werden.
Zusammenfassung
Vorlagen- und Dateiübertragungsunterstützung wurden derzeit nur zur Azure CLI hinzugefügt. Ziel ist es, die Zielgruppe zu erweitern, die Batch für Benutzer verwenden kann, die keinen Code mithilfe der Batch-APIs entwickeln müssen, z. B. Forscher und IT-Benutzer. Ohne Codierung können Benutzer mit Kenntnissen über Azure, Batch und die anwendungen, die von Batch ausgeführt werden, Vorlagen für Pool- und Auftragserstellung erstellen. Mit Vorlagenparametern können Benutzer ohne detaillierte Kenntnisse von Batch und die Anwendungen die Vorlagen verwenden.
Probieren Sie die Batcherweiterung für die Azure CLI aus, und geben Sie uns Feedback oder Vorschläge, entweder in den Kommentaren für diesen Artikel oder über das Batch Community-Repository.
Nächste Schritte
- Zeigen Sie detaillierte Installations- und Nutzungsdokumentation, Beispiele und Quellcode im Azure GitHub-Repository an.
- Erfahren Sie mehr über die Verwendung des Batch-Explorers zum Erstellen und Verwalten von Batchressourcen.