Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Advertencia
La extensión batch CLI de Azure se retiró el 30 de septiembre de 2024. Desinstale la extensión con el comando az extension remove --name azure-batch-cli-extensions.
Mediante el uso de una extensión de Batch para CLI de Azure, los usuarios pueden ejecutar trabajos de Batch sin escribir código.
Cree y use archivos de plantilla JSON con CLI de Azure para crear grupos, trabajos y tareas de Batch. Use comandos de extensión de la CLI para cargar fácilmente archivos de entrada de trabajo en la cuenta de almacenamiento asociada a la cuenta de Batch y descargar archivos de salida del trabajo.
Nota:
Los archivos JSON no admiten la misma funcionalidad que las plantillas de Azure Resource Manager. Deben tener el mismo formato que el cuerpo sin procesar de la solicitud REST. La extensión de la CLI no cambia ningún comando existente, pero tiene una opción de plantilla similar que agrega funcionalidad de plantilla parcial Azure Resource Manager. Consulte las extensiones de la CLI de Azure Batch para Windows, Mac y Linux.
Visión general
Una extensión de CLI de Azure permite que los usuarios que no son desarrolladores utilicen Batch de principio a fin. Con solo los comandos de la CLI, puede crear un grupo, cargar datos de entrada, crear trabajos y tareas asociadas y descargar los datos de salida resultantes. No se requiere código adicional. Ejecute los comandos de la CLI directamente o intégrelos en scripts.
Las plantillas de Batch se basan en la compatibilidad existente con Batch en el CLI de Azure para que los archivos JSON especifiquen valores de propiedad al crear grupos, trabajos, tareas y otros elementos. Las plantillas de Batch agregan las siguientes funcionalidades:
Se pueden definir parámetros. Cuando se usa la plantilla, solo se especifican los valores de parámetro para crear el elemento, con otros valores de propiedad de elemento especificados en el cuerpo de la plantilla. Un usuario que comprenda Batch y las aplicaciones que Batch va a ejecutar puede crear plantillas, especificando valores de las propiedades del grupo, del trabajo y de la tarea. Un usuario menos familiarizado con Batch o las aplicaciones solo necesita especificar los valores de los parámetros definidos.
Los generadores de tareas de trabajo crean una o varias tareas asociadas a un trabajo, lo que evita la necesidad de crear muchas definiciones de tareas y simplificar significativamente el envío de trabajos.
Los trabajos suelen usar archivos de datos de entrada y generar archivos de datos de salida. Una cuenta de almacenamiento está asociada, de forma predeterminada, con cada cuenta de Batch. Puede transferir archivos a y desde esta cuenta de almacenamiento mediante CLI de Azure, sin codificación ni credenciales de almacenamiento.
Por ejemplo, ffmpeg es una aplicación popular que procesa archivos de audio y vídeo. Con la extensión de la CLI de Azure Batch, podría facilitar a un usuario invocar ffmpeg para transcodificar archivos de vídeo de origen a diferentes resoluciones. El proceso podría tener este aspecto:
- Cree una plantilla de grupo. El usuario que crea la plantilla sabe cómo llamar a la aplicación ffmpeg y sus requisitos; especifican el sistema operativo adecuado, el tamaño de máquina virtual, cómo se instala ffmpeg (desde un paquete de aplicación o mediante un administrador de paquetes, por ejemplo) y otros valores de propiedad de grupo. Los parámetros se crean para que cuando se use la plantilla, solo es necesario especificar el identificador del grupo y el número de máquinas virtuales.
- Cree una plantilla de trabajo. El usuario que crea la plantilla sabe cómo se debe invocar ffmpeg para transcodificar el vídeo de origen a una resolución diferente y especifica la línea de comandos de la tarea; también saben que hay una carpeta que contiene los archivos de vídeo de origen, con una tarea necesaria por archivo de entrada.
- Un usuario final con un conjunto de archivos de vídeo para transcodificar primero crea un grupo mediante la plantilla de grupo, especificando solo el identificador del grupo y el número de máquinas virtuales necesarias. Después, pueden cargar los archivos de origen para transcodificar. A continuación, se puede enviar un trabajo mediante la plantilla de trabajo, especificando solo el identificador del grupo y la ubicación de los archivos de origen cargados. Se crea el trabajo por lotes y se genera una tarea por cada archivo de entrada. Por último, se pueden descargar los archivos de salida transcodificados.
Installation
Para instalar la extensión de la CLI de Azure Batch, primero instale el CLI de Azure 2.0 o ejecute el CLI de Azure en Azure Cloud Shell.
Instale la versión más reciente de la extensión batch con el siguiente comando CLI de Azure:
az extension add --name azure-batch-cli-extensions
Para obtener más información sobre la extensión de la CLI de Batch y opciones de instalación adicionales, consulte el repositorio de GitHub.
Para usar las características de la extensión de la CLI, necesita una cuenta de Azure Batch y, para los comandos que transfieren archivos hacia y desde el almacenamiento, una cuenta de almacenamiento vinculada.
Para iniciar sesión en una cuenta de Batch con el CLI de Azure, consulte Administración de recursos de Batch con CLI de Azure.
Templates
Azure Batch plantillas son similares a las plantillas de Azure Resource Manager, en la funcionalidad y la sintaxis. Son archivos JSON que contienen valores y nombres de propiedad de elemento, pero agregan los siguientes conceptos principales:
-
Parámetros: permiten especificar los valores de las propiedades en una sección del cuerpo, de modo que, al usar la plantilla, solo sea necesario proporcionar los valores de los parámetros. Por ejemplo, la definición completa de un grupo podría colocarse en el cuerpo y solo un parámetro definido para
poolId; solo es necesario proporcionar una cadena de identificador de grupo para crear un grupo. El cuerpo de la plantilla puede ser creado por alguien con conocimiento de Batch y las aplicaciones que va a ejecutar Batch; solo se deben proporcionar valores para los parámetros definidos por el autor cuando se usa la plantilla. Esto permite a los usuarios sin ningún conocimiento detallado de Batch o aplicación usar las plantillas. - Variables: permite especificar valores de parámetro simples o complejos en un solo lugar y se usan en uno o varios lugares del cuerpo de la plantilla. Las variables pueden simplificar y reducir el tamaño de la plantilla, así como hacer que sea más fácil de mantener al tener una ubicación para cambiar las propiedades.
- Construcciones de nivel superior: algunas construcciones de nivel superior están disponibles en la plantilla que aún no están disponibles en las API de Batch. Por ejemplo, un generador de tareas se puede definir en una plantilla de trabajo que crea varias tareas para el trabajo mediante una definición de tarea común. Estas construcciones evitan la necesidad de codificar para crear dinámicamente varios archivos JSON, como un archivo por tarea, así como crear archivos de script para instalar aplicaciones a través de un administrador de paquetes.
Plantillas de grupo
Las plantillas de grupo admiten las funcionalidades de plantilla estándar de parámetros y variables. También admiten referencias de paquetes, que opcionalmente permiten copiar el software en nodos de grupo mediante administradores de paquetes. El administrador de paquetes y el identificador de paquete se especifican en la referencia del paquete. Al declarar uno o varios paquetes, evita crear un script que obtenga los paquetes necesarios, instalar el script y ejecutar el script en cada nodo de grupo.
A continuación se muestra un ejemplo de una plantilla que crea un grupo de máquinas virtuales Linux con ffmpeg instalado. Para usarlo, proporcione solo una cadena de identificador de grupo y el número de máquinas virtuales del grupo:
{
"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"
}
]
}
}
}
Si el archivo de plantilla se llamaba pool-ffmpeg.json, invoque la plantilla de la siguiente manera:
az batch pool create --template pool-ffmpeg.json
La CLI le pide que proporcione valores para los poolId parámetros y nodeCount . También puede proporcionar los parámetros en un archivo JSON. Por ejemplo:
{
"poolId": {
"value": "mypool"
},
"nodeCount": {
"value": 2
}
}
Si el archivo JSON de los parámetros se llamaba pool-parameters.json, invoque la plantilla de la siguiente manera:
az batch pool create --template pool-ffmpeg.json --parameters pool-parameters.json
Plantillas de trabajos
Las plantillas de trabajo admiten las funcionalidades de plantilla estándar de parámetros y variables. También admiten la construcción del generador de tareas, que crea varias tareas para un trabajo a partir de una definición de tarea. Se admiten tres tipos de generador de tareas: barrido paramétrico, tarea por archivo y colección de tareas.
A continuación se muestra un ejemplo de una plantilla que crea un trabajo para transcodificar archivos de vídeo MP4 con ffmpeg a una de las dos resoluciones inferiores. Crea una tarea por archivo de vídeo de origen. Consulte Grupos de archivos y transferencia de archivos para obtener más información sobre los grupos de archivos para la entrada y salida del trabajo.
{
"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"
}
}
}
Si el archivo de plantilla se llamaba job-ffmpeg.json, invoque la plantilla de la siguiente manera:
az batch job create --template job-ffmpeg.json
Como antes, la CLI le pide que proporcione valores para los parámetros. También puede proporcionar los parámetros en un archivo JSON.
Uso de plantillas en Batch Explorer
Puede cargar una plantilla de la CLI de Batch en la aplicación de escritorio de Batch Explorer para crear un grupo o trabajo de Batch. También puede seleccionar plantillas predefinidas de grupo y de trabajo en la galería de Batch Explorer.
Para cargar una plantilla:
- En Batch Explorer, seleccione Galería>Plantillas locales.
- Seleccione, o arrastre y coloque, un grupo local o una plantilla de trabajo.
- Seleccione Usar esta plantilla y siga las indicaciones en pantalla.
Grupos de archivos y transferencia de archivos
La mayoría de los trabajos y tareas requieren archivos de entrada y generan archivos de salida. Normalmente, los archivos de entrada y los archivos de salida se transfieren, ya sea desde el cliente al nodo o desde el nodo al cliente. La extensión de la CLI de Azure Batch oculta la complejidad de la transferencia de archivos y utiliza la cuenta de almacenamiento que puede asociarse a cada cuenta de Azure Batch.
Un grupo de archivos equivale a un contenedor que se crea en la cuenta de almacenamiento de Azure. Es posible que el grupo de archivos tenga subcarpetas.
La extensión de la CLI de Batch proporciona comandos para cargar archivos del cliente en un grupo de archivos especificado y descargar archivos del grupo de archivos especificado a un cliente.
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
Las plantillas de grupo y de trabajos permiten especificar que los archivos almacenados en grupos de archivos se copien en los nodos del grupo o se vuelvan a copiar desde los nodos del grupo a un grupo de archivos. Por ejemplo, en la plantilla de trabajo especificada anteriormente, el grupo de archivos ffmpeg-input se especifica para el generador de tareas como la ubicación de los archivos de vídeo de origen copiados al nodo para la transcodificación. El grupo de archivos ffmpeg-output es la ubicación donde se copian los archivos de salida transcodificados del nodo que ejecuta cada tarea.
Resumen
Actualmente, la compatibilidad con la transferencia de archivos y plantillas solo se ha agregado al CLI de Azure. El objetivo es expandir la audiencia que puede usar Batch para los usuarios que no necesitan desarrollar código mediante las API de Batch, como investigadores y usuarios de TI. Sin codificar, los usuarios con conocimientos de Azure, Batch y las aplicaciones que va a ejecutar Batch pueden crear plantillas para la creación de grupos y trabajos. Con los parámetros de plantilla, los usuarios sin conocimientos detallados de Batch y las aplicaciones pueden usar las plantillas.
Pruebe la extensión de Batch para el CLI de Azure y envíenos sus comentarios o sugerencias, ya sea en los comentarios de este artículo o a través del repositorio de la comunidad de Batch.
Pasos siguientes
- Vea la documentación detallada de instalación y uso, ejemplos y código fuente en el repositorio de Azure GitHub.
- Obtenga más información sobre el uso de Batch Explorer para crear y administrar recursos de Batch.