BatchJobManagerTask interface
Especifica los detalles de una tarea del Administrador de trabajos. La tarea Administrador de trabajos se inicia automáticamente cuando se crea el trabajo. El servicio Batch intenta programar la tarea administrador de trabajos antes de cualquier otra tarea del trabajo. Al reducir un grupo, el servicio Batch intenta conservar los nodos en los que las tareas del Administrador de trabajos se ejecutan durante tanto tiempo como sea posible (es decir, los nodos de proceso que ejecutan tareas "normales" se quitan antes de que los nodos de proceso ejecuten tareas del Administrador de trabajos). Cuando se produce un error en una tarea del Administrador de trabajos y debe reiniciarse, el sistema intenta programarla con la prioridad más alta. Si no hay nodos de proceso inactivos disponibles, el sistema puede finalizar una de las tareas en ejecución en el grupo y devolverla a la cola para que la tarea del Administrador de trabajos se reinicie. Tenga en cuenta que una tarea del Administrador de trabajos en un trabajo no tiene prioridad sobre las tareas de otros trabajos. En los trabajos, solo se observan prioridades de nivel de trabajo. Por ejemplo, si es necesario reiniciar un administrador de trabajos en una prioridad 0, no desplazará las tareas de un trabajo de prioridad 1. Batch volverá a intentar tareas cuando se desencadene una operación de recuperación en un nodo. Algunos ejemplos de operaciones de recuperación son (pero no están limitados a) cuando se reinicia un nodo incorrecto o un nodo de proceso desaparece debido a un error de host. Los reintentos debido a las operaciones de recuperación son independientes de y no se cuentan con maxTaskRetryCount. Incluso si maxTaskRetryCount es 0, puede producirse un reintento interno debido a una operación de recuperación. Por este motivo, todas las tareas deben ser idempotentes. Esto significa que las tareas deben tolerar que se interrumpan y se reinicien sin causar daños ni datos duplicados. El procedimiento recomendado para tareas de larga duración es usar algún tipo de punto de control.
Propiedades
| allow |
Si la tarea del Administrador de Trabajos puede ejecutarse en un Nodo de Computación de Puntuación/Baja Prioridad. El valor predeterminado es true. |
| application |
Una lista de Paquetes de Aplicación que el servicio Batch desplegará en el Nodo de Cómputo antes de ejecutar la línea de comandos. Los paquetes de aplicación se descargan y despliegan en un directorio compartido, no en el directorio de trabajo de Tareas. Por lo tanto, si un Paquete de Aplicación referenciado ya está en el Nodo de Cómputo y está actualizado, no se vuelve a descargar; se utiliza la copia existente en el Nodo de Cómputo. Si no se puede instalar un Paquete de Aplicación referenciado, por ejemplo porque el paquete ha sido eliminado o porque la descarga falló, la Tarea falla. |
| command |
La línea de comandos de la tarea del Gestor de Trabajos. La línea de comandos no se ejecuta en un shell y, por tanto, no puede aprovechar las características del shell, como la expansión de variables de entorno. Si quieres aprovechar estas funciones, deberías invocar el shell en la línea de comandos, por ejemplo usando "cmd /c MyCommand" en Windows o "/bin/sh -c MyCommand" en Linux. Si la línea de comandos hace referencia a rutas de acceso de archivo, debe usar una ruta de acceso relativa (relativa al directorio de trabajo de la tarea) o usar la variable de entorno proporcionada por Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Restricciones que se aplican a la tarea del Gestor de Trabajos. |
| container |
Los ajustes del contenedor bajo el que se ejecuta la tarea del Administrador de Trabajos. Si el Pool que ejecutará esta Tarea tiene configurado containerConfiguration, esto también debe configurarse. Si el Pool que ejecutará esta tarea no tiene containerConfiguration activado, esto no debe configurarse. Cuando esto se especifica, todos los directorios recursivamente por debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de Azure Batch directorios en el nodo) se mapean en el contenedor, todas las variables del entorno de Tarea se mapean en el contenedor y la línea de comandos de Tarea se ejecuta en el contenedor. Los archivos producidos en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR pueden no reflejarse en el disco anfitrión, lo que significa que las APIs de archivos por lotes no podrán acceder a esos archivos. |
| display |
El nombre de visualización de la tarea del Gestor de Trabajos. No tiene por qué ser único y puede contener cualquier carácter Unicode hasta una longitud máxima de 1024. |
| environment |
Una lista de ajustes de variables de entorno para la tarea del Gestor de Trabajos. |
| id | Una cadena que identifica de forma única la Tarea del Gestor de Trabajos dentro del Trabajo. El ID puede contener cualquier combinación de caracteres alfanuméricos, incluidos guiones y guiones bajos, y no puede contener más de 64 caracteres. |
| kill |
Si completar la tarea del Gestor de Trabajo significa completar la tarea completa. Si es cierto, cuando la tarea del Administrador de Trabajos termina, el servicio por lotes marca el Trabajo como completado. Si aún hay alguna Tareas en funcionamiento en ese momento (excepto la Liberación de Trabajo), esas Tareas se cancelan. Si es falso, la finalización de la tarea del Gestor de Trabajo no afecta al estado del puesto. En este caso, deberías usar el atributo onAllTasksComplete para terminar el Trabajo, o hacer que un cliente o usuario termine el Trabajo explícitamente. Un ejemplo de esto es si el Gestor de Tareas crea un conjunto de Tareas pero luego no asume más papel en su ejecución. El valor predeterminado es true. Si usas los atributos onAllTasksComplete y onTaskFailure para controlar la vida útil del trabajo, y solo usas la tarea del Gestor de Tareas para crear las tareas del trabajo (no para monitorizar el progreso), entonces es importante poner killJobOnCompletion en false. |
| output |
Una lista de archivos que el servicio Batch cargará desde el Nodo de Cómputo tras ejecutar la línea de comandos. Para tareas multiinstancia, los archivos solo se cargarán desde el nodo de cómputo en el que se ejecuta la tarea principal. |
| required |
El número de espacios de planificación que la Tarea requiere para ejecutarse. El valor predeterminado es 1. Una tarea solo puede programarse para ejecutarse en un nodo de cómputo si este tiene suficientes espacios libres de planificación disponibles. Para tareas multiinstancia, esta propiedad no está soportada y no debe especificarse. |
| resource |
Lista de archivos que el servicio Batch descargará en el nodo de proceso antes de ejecutar la línea de comandos. Los archivos enumerados en este elemento se encuentran en el directorio de trabajo de la tarea. Hay un tamaño máximo para la lista de archivos de recursos. Cuando se supera el tamaño máximo, se producirá un error en la solicitud y el código de error de respuesta será RequestEntityTooLarge. Si esto ocurre, la colección de ResourceFiles debe reducirse en tamaño. Esto se puede lograr mediante archivos de .zip, paquetes de aplicación o contenedores de Docker. |
| run |
Si la tarea del Administrador de Trabajos requiere uso exclusivo del Nodo de Cómputo donde se ejecuta. Si es cierto, ninguna otra tarea se ejecutará en el mismo nodo mientras el administrador de trabajos esté en funcionamiento. Si es falso, otras tareas pueden ejecutarse simultáneamente con el Administrador de Trabajos en un nodo de cómputo. La Tarea del Administrador de Trabajos cuenta normalmente contra el límite de tareas concurrentes del Nodo de Cálculo, por lo que esto solo es relevante si el Nodo de Cálculo permite múltiples tareas concurrentes. El valor predeterminado es true. |
| user |
La identidad de usuario bajo la cual se ejecuta la tarea del Administrador de Trabajos. Si se omite, la tarea se ejecuta como un usuario no administrativo único de la tarea. |
Detalles de las propiedades
allowLowPriorityNode
Si la tarea del Administrador de Trabajos puede ejecutarse en un Nodo de Computación de Puntuación/Baja Prioridad. El valor predeterminado es true.
allowLowPriorityNode?: boolean
Valor de propiedad
boolean
applicationPackageReferences
Una lista de Paquetes de Aplicación que el servicio Batch desplegará en el Nodo de Cómputo antes de ejecutar la línea de comandos. Los paquetes de aplicación se descargan y despliegan en un directorio compartido, no en el directorio de trabajo de Tareas. Por lo tanto, si un Paquete de Aplicación referenciado ya está en el Nodo de Cómputo y está actualizado, no se vuelve a descargar; se utiliza la copia existente en el Nodo de Cómputo. Si no se puede instalar un Paquete de Aplicación referenciado, por ejemplo porque el paquete ha sido eliminado o porque la descarga falló, la Tarea falla.
applicationPackageReferences?: BatchApplicationPackageReference[]
Valor de propiedad
commandLine
La línea de comandos de la tarea del Gestor de Trabajos. La línea de comandos no se ejecuta en un shell y, por tanto, no puede aprovechar las características del shell, como la expansión de variables de entorno. Si quieres aprovechar estas funciones, deberías invocar el shell en la línea de comandos, por ejemplo usando "cmd /c MyCommand" en Windows o "/bin/sh -c MyCommand" en Linux. Si la línea de comandos hace referencia a rutas de acceso de archivo, debe usar una ruta de acceso relativa (relativa al directorio de trabajo de la tarea) o usar la variable de entorno proporcionada por Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Valor de propiedad
string
constraints
Restricciones que se aplican a la tarea del Gestor de Trabajos.
constraints?: BatchTaskConstraints
Valor de propiedad
containerSettings
Los ajustes del contenedor bajo el que se ejecuta la tarea del Administrador de Trabajos. Si el Pool que ejecutará esta Tarea tiene configurado containerConfiguration, esto también debe configurarse. Si el Pool que ejecutará esta tarea no tiene containerConfiguration activado, esto no debe configurarse. Cuando esto se especifica, todos los directorios recursivamente por debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de Azure Batch directorios en el nodo) se mapean en el contenedor, todas las variables del entorno de Tarea se mapean en el contenedor y la línea de comandos de Tarea se ejecuta en el contenedor. Los archivos producidos en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR pueden no reflejarse en el disco anfitrión, lo que significa que las APIs de archivos por lotes no podrán acceder a esos archivos.
containerSettings?: BatchTaskContainerSettings
Valor de propiedad
displayName
El nombre de visualización de la tarea del Gestor de Trabajos. No tiene por qué ser único y puede contener cualquier carácter Unicode hasta una longitud máxima de 1024.
displayName?: string
Valor de propiedad
string
environmentSettings
Una lista de ajustes de variables de entorno para la tarea del Gestor de Trabajos.
environmentSettings?: EnvironmentSetting[]
Valor de propiedad
id
Una cadena que identifica de forma única la Tarea del Gestor de Trabajos dentro del Trabajo. El ID puede contener cualquier combinación de caracteres alfanuméricos, incluidos guiones y guiones bajos, y no puede contener más de 64 caracteres.
id: string
Valor de propiedad
string
killJobOnCompletion
Si completar la tarea del Gestor de Trabajo significa completar la tarea completa. Si es cierto, cuando la tarea del Administrador de Trabajos termina, el servicio por lotes marca el Trabajo como completado. Si aún hay alguna Tareas en funcionamiento en ese momento (excepto la Liberación de Trabajo), esas Tareas se cancelan. Si es falso, la finalización de la tarea del Gestor de Trabajo no afecta al estado del puesto. En este caso, deberías usar el atributo onAllTasksComplete para terminar el Trabajo, o hacer que un cliente o usuario termine el Trabajo explícitamente. Un ejemplo de esto es si el Gestor de Tareas crea un conjunto de Tareas pero luego no asume más papel en su ejecución. El valor predeterminado es true. Si usas los atributos onAllTasksComplete y onTaskFailure para controlar la vida útil del trabajo, y solo usas la tarea del Gestor de Tareas para crear las tareas del trabajo (no para monitorizar el progreso), entonces es importante poner killJobOnCompletion en false.
killJobOnCompletion?: boolean
Valor de propiedad
boolean
outputFiles
Una lista de archivos que el servicio Batch cargará desde el Nodo de Cómputo tras ejecutar la línea de comandos. Para tareas multiinstancia, los archivos solo se cargarán desde el nodo de cómputo en el que se ejecuta la tarea principal.
outputFiles?: OutputFile[]
Valor de propiedad
requiredSlots
El número de espacios de planificación que la Tarea requiere para ejecutarse. El valor predeterminado es 1. Una tarea solo puede programarse para ejecutarse en un nodo de cómputo si este tiene suficientes espacios libres de planificación disponibles. Para tareas multiinstancia, esta propiedad no está soportada y no debe especificarse.
requiredSlots?: number
Valor de propiedad
number
resourceFiles
Lista de archivos que el servicio Batch descargará en el nodo de proceso antes de ejecutar la línea de comandos. Los archivos enumerados en este elemento se encuentran en el directorio de trabajo de la tarea. Hay un tamaño máximo para la lista de archivos de recursos. Cuando se supera el tamaño máximo, se producirá un error en la solicitud y el código de error de respuesta será RequestEntityTooLarge. Si esto ocurre, la colección de ResourceFiles debe reducirse en tamaño. Esto se puede lograr mediante archivos de .zip, paquetes de aplicación o contenedores de Docker.
resourceFiles?: ResourceFile[]
Valor de propiedad
runExclusive
Si la tarea del Administrador de Trabajos requiere uso exclusivo del Nodo de Cómputo donde se ejecuta. Si es cierto, ninguna otra tarea se ejecutará en el mismo nodo mientras el administrador de trabajos esté en funcionamiento. Si es falso, otras tareas pueden ejecutarse simultáneamente con el Administrador de Trabajos en un nodo de cómputo. La Tarea del Administrador de Trabajos cuenta normalmente contra el límite de tareas concurrentes del Nodo de Cálculo, por lo que esto solo es relevante si el Nodo de Cálculo permite múltiples tareas concurrentes. El valor predeterminado es true.
runExclusive?: boolean
Valor de propiedad
boolean
userIdentity
La identidad de usuario bajo la cual se ejecuta la tarea del Administrador de Trabajos. Si se omite, la tarea se ejecuta como un usuario no administrativo único de la tarea.
userIdentity?: UserIdentity