Compartir a través de


JobManagerTask interface

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

allowLowPriorityNode

Si la tarea administrador de trabajos se puede ejecutar en un nodo de proceso de prioridad baja. El valor predeterminado es true.

applicationPackageReferences

Lista de paquetes de aplicación que el servicio Batch implementará en el nodo de proceso antes de ejecutar la línea de comandos. Los paquetes de aplicación se descargan e implementan en un directorio compartido, no en el directorio de trabajo de la tarea. Por lo tanto, si un paquete de aplicación al que se hace referencia ya está en el nodo de proceso y está actualizado, no se vuelve a descargar; se usa la copia existente en el nodo de proceso. Si no se puede instalar un paquete de aplicación al que se hace referencia, por ejemplo porque se ha eliminado el paquete o porque se produjo un error en la descarga, se produce un error en la tarea.

authenticationTokenSettings

La configuración de un token de autenticación que la tarea puede usar para realizar operaciones del servicio Batch. Si se establece esta propiedad, el servicio Batch proporciona a la tarea un token de autenticación que se puede usar para autenticar las operaciones del servicio Batch sin necesidad de una clave de acceso de la cuenta. El token se proporciona a través de la variable de entorno AZ_BATCH_AUTHENTICATION_TOKEN. Las operaciones que la tarea puede llevar a cabo mediante el token dependen de la configuración. Por ejemplo, una tarea puede solicitar permisos de trabajo para agregar otras tareas al trabajo o comprobar el estado del trabajo o de otras tareas en el trabajo.

commandLine

Línea de comandos de la tarea Administrador 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 desea aprovechar estas características, debe invocar el shell en la línea de comandos, por ejemplo, con "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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

constraints

Restricciones que se aplican a la tarea Administrador de trabajos.

containerSettings

Configuración del contenedor en el que se ejecuta la tarea Administrador de trabajos. Si el grupo que ejecutará esta tarea tiene el conjunto containerConfiguration, también debe establecerse. Si el grupo que ejecutará esta tarea no tiene establecido containerConfiguration, no se debe establecer. Cuando se especifica esto, todos los directorios se asignan de forma recursiva debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de los directorios de Azure Batch en el nodo) en el contenedor, todas las variables de entorno task se asignan al contenedor y la línea de comandos task se ejecuta en el contenedor. Es posible que los archivos generados en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR no se reflejen en el disco host, lo que significa que las API de archivos de Batch no podrán acceder a esos archivos.

displayName

Nombre para mostrar de la tarea Administrador de trabajos. No es necesario ser único y puede contener caracteres Unicode de hasta una longitud máxima de 1024.

environmentSettings

Lista de opciones de configuración de variables de entorno para la tarea Administrador de trabajos.

id

Cadena que identifica de forma única la tarea administrador de trabajos dentro del trabajo. El identificador puede contener cualquier combinación de caracteres alfanuméricos, incluidos guiones y caracteres de subrayado, y no puede contener más de 64 caracteres.

killJobOnCompletion

Si la finalización de la tarea administrador de trabajos indica la finalización de todo el trabajo. Si es true, cuando se completa la tarea administrador de trabajos, el servicio Batch marca el trabajo como completado. Si alguna tarea todavía se está ejecutando en este momento (aparte de la versión del trabajo), esas tareas se finalizan. Si es false, la finalización de la tarea administrador de trabajos no afecta al estado del trabajo. En este caso, debe usar el atributo onAllTasksComplete para finalizar el trabajo o hacer que un cliente o usuario finalice el trabajo explícitamente. Un ejemplo de esto es si el Administrador de trabajos crea un conjunto de tareas pero, a continuación, no asume ningún rol adicional en su ejecución. El valor predeterminado es true. Si usa los atributos onAllTasksComplete y onTaskFailure para controlar la duración del trabajo y usar la tarea administrador de trabajos solo para crear las tareas para el trabajo (no supervisar el progreso), es importante establecer killJobOnCompletion en false.

outputFiles

Lista de archivos que el servicio Batch cargará desde el nodo de proceso después de ejecutar la línea de comandos. En el caso de las tareas de varias instancias, los archivos solo se cargarán desde el nodo de proceso en el que se ejecuta la tarea principal.

requiredSlots

Número de ranuras de programación que requiere la tarea para ejecutarse. El valor predeterminado es 1. Una tarea solo se puede programar para ejecutarse en un nodo de proceso si el nodo tiene suficientes ranuras de programación libres disponibles. Para las tareas de varias instancias, debe ser 1.

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.

runExclusive

Si la tarea del Administrador de trabajos requiere un uso exclusivo del nodo de proceso donde se ejecuta. Si es true, ninguna otra tarea se ejecutará en el mismo nodo mientras se ejecute el Administrador de trabajos. Si es false, otras tareas se pueden ejecutar simultáneamente con el Administrador de trabajos en un nodo de proceso. La tarea administrador de trabajos cuenta normalmente con respecto al límite de tareas simultáneas del nodo de proceso, por lo que esto solo es relevante si el nodo de proceso permite varias tareas simultáneas. El valor predeterminado es true.

userIdentity

Identidad de usuario en la que se ejecuta la tarea Administrador de trabajos. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea.

Detalles de las propiedades

allowLowPriorityNode

Si la tarea administrador de trabajos se puede ejecutar en un nodo de proceso de prioridad baja. El valor predeterminado es true.

allowLowPriorityNode?: boolean

Valor de propiedad

boolean

applicationPackageReferences

Lista de paquetes de aplicación que el servicio Batch implementará en el nodo de proceso antes de ejecutar la línea de comandos. Los paquetes de aplicación se descargan e implementan en un directorio compartido, no en el directorio de trabajo de la tarea. Por lo tanto, si un paquete de aplicación al que se hace referencia ya está en el nodo de proceso y está actualizado, no se vuelve a descargar; se usa la copia existente en el nodo de proceso. Si no se puede instalar un paquete de aplicación al que se hace referencia, por ejemplo porque se ha eliminado el paquete o porque se produjo un error en la descarga, se produce un error en la tarea.

applicationPackageReferences?: ApplicationPackageReference[]

Valor de propiedad

authenticationTokenSettings

La configuración de un token de autenticación que la tarea puede usar para realizar operaciones del servicio Batch. Si se establece esta propiedad, el servicio Batch proporciona a la tarea un token de autenticación que se puede usar para autenticar las operaciones del servicio Batch sin necesidad de una clave de acceso de la cuenta. El token se proporciona a través de la variable de entorno AZ_BATCH_AUTHENTICATION_TOKEN. Las operaciones que la tarea puede llevar a cabo mediante el token dependen de la configuración. Por ejemplo, una tarea puede solicitar permisos de trabajo para agregar otras tareas al trabajo o comprobar el estado del trabajo o de otras tareas en el trabajo.

authenticationTokenSettings?: AuthenticationTokenSettings

Valor de propiedad

commandLine

Línea de comandos de la tarea Administrador 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 desea aprovechar estas características, debe invocar el shell en la línea de comandos, por ejemplo, con "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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

commandLine: string

Valor de propiedad

string

constraints

Restricciones que se aplican a la tarea Administrador de trabajos.

constraints?: TaskConstraints

Valor de propiedad

containerSettings

Configuración del contenedor en el que se ejecuta la tarea Administrador de trabajos. Si el grupo que ejecutará esta tarea tiene el conjunto containerConfiguration, también debe establecerse. Si el grupo que ejecutará esta tarea no tiene establecido containerConfiguration, no se debe establecer. Cuando se especifica esto, todos los directorios se asignan de forma recursiva debajo del AZ_BATCH_NODE_ROOT_DIR (la raíz de los directorios de Azure Batch en el nodo) en el contenedor, todas las variables de entorno task se asignan al contenedor y la línea de comandos task se ejecuta en el contenedor. Es posible que los archivos generados en el contenedor fuera de AZ_BATCH_NODE_ROOT_DIR no se reflejen en el disco host, lo que significa que las API de archivos de Batch no podrán acceder a esos archivos.

containerSettings?: TaskContainerSettings

Valor de propiedad

displayName

Nombre para mostrar de la tarea Administrador de trabajos. No es necesario ser único y puede contener caracteres Unicode de hasta una longitud máxima de 1024.

displayName?: string

Valor de propiedad

string

environmentSettings

Lista de opciones de configuración de variables de entorno para la tarea Administrador de trabajos.

environmentSettings?: EnvironmentSetting[]

Valor de propiedad

id

Cadena que identifica de forma única la tarea administrador de trabajos dentro del trabajo. El identificador puede contener cualquier combinación de caracteres alfanuméricos, incluidos guiones y caracteres de subrayado, y no puede contener más de 64 caracteres.

id: string

Valor de propiedad

string

killJobOnCompletion

Si la finalización de la tarea administrador de trabajos indica la finalización de todo el trabajo. Si es true, cuando se completa la tarea administrador de trabajos, el servicio Batch marca el trabajo como completado. Si alguna tarea todavía se está ejecutando en este momento (aparte de la versión del trabajo), esas tareas se finalizan. Si es false, la finalización de la tarea administrador de trabajos no afecta al estado del trabajo. En este caso, debe usar el atributo onAllTasksComplete para finalizar el trabajo o hacer que un cliente o usuario finalice el trabajo explícitamente. Un ejemplo de esto es si el Administrador de trabajos crea un conjunto de tareas pero, a continuación, no asume ningún rol adicional en su ejecución. El valor predeterminado es true. Si usa los atributos onAllTasksComplete y onTaskFailure para controlar la duración del trabajo y usar la tarea administrador de trabajos solo para crear las tareas para el trabajo (no supervisar el progreso), es importante establecer killJobOnCompletion en false.

killJobOnCompletion?: boolean

Valor de propiedad

boolean

outputFiles

Lista de archivos que el servicio Batch cargará desde el nodo de proceso después de ejecutar la línea de comandos. En el caso de las tareas de varias instancias, los archivos solo se cargarán desde el nodo de proceso en el que se ejecuta la tarea principal.

outputFiles?: OutputFile[]

Valor de propiedad

requiredSlots

Número de ranuras de programación que requiere la tarea para ejecutarse. El valor predeterminado es 1. Una tarea solo se puede programar para ejecutarse en un nodo de proceso si el nodo tiene suficientes ranuras de programación libres disponibles. Para las tareas de varias instancias, debe ser 1.

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 un uso exclusivo del nodo de proceso donde se ejecuta. Si es true, ninguna otra tarea se ejecutará en el mismo nodo mientras se ejecute el Administrador de trabajos. Si es false, otras tareas se pueden ejecutar simultáneamente con el Administrador de trabajos en un nodo de proceso. La tarea administrador de trabajos cuenta normalmente con respecto al límite de tareas simultáneas del nodo de proceso, por lo que esto solo es relevante si el nodo de proceso permite varias tareas simultáneas. El valor predeterminado es true.

runExclusive?: boolean

Valor de propiedad

boolean

userIdentity

Identidad de usuario en la que se ejecuta la tarea Administrador de trabajos. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea.

userIdentity?: UserIdentity

Valor de propiedad