BatchJobPreparationTask interface

Tarea de preparación de trabajos que se ejecutará antes de cualquier tarea del trabajo en cualquier nodo de proceso determinado. Puede usar la preparación del trabajo para preparar un nodo para ejecutar tareas para el trabajo. Las actividades que se realizan normalmente en la preparación del trabajo incluyen: descargar archivos de recursos comunes usados por todas las tareas del trabajo. La tarea de preparación del trabajo puede descargar estos archivos de recursos comunes en la ubicación compartida del nodo. (AZ_BATCH_NODE_ROOT_DIR\shared) o iniciar un servicio local en el nodo para que todas las tareas de ese trabajo puedan comunicarse con él. Si se produce un error en la tarea de preparación del trabajo (es decir, agota su recuento de reintentos antes de salir con el código de salida 0), Batch no ejecutará tareas de este trabajo en el nodo. El nodo de proceso permanece inelegible para ejecutar tareas de este trabajo hasta que se vuelva a crear una imagen. El nodo de proceso permanece activo y se puede usar para otros trabajos. La tarea de preparación del trabajo se puede ejecutar varias veces en el mismo nodo. Por lo tanto, debe escribir la tarea de preparación del trabajo para controlar la reejecución. Si se reinicia el nodo, la tarea de preparación del trabajo se vuelve a ejecutar en el nodo de proceso antes de programar cualquier otra tarea del trabajo, si rerunOnNodeRebootAfterSuccess es true o si la tarea de preparación del trabajo no se completó anteriormente. Si se vuelve a crear la imagen del nodo, la tarea de preparación del trabajo se vuelve a ejecutar antes de programar cualquier tarea del trabajo. 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

commandLine

La línea de comandos de la Tarea de Preparación 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 de preparación para el puesto.

containerSettings

Los ajustes del contenedor bajo el cual se ejecuta la Tarea de Preparación de Trabajos. 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.

environmentSettings

Una lista de ajustes de variables de entorno para la tarea de Preparación de Trabajo.

id

Una cadena que identifica de forma única la tarea de preparación del puesto dentro del puesto. 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. Si no especificas esta propiedad, el servicio por lotes asigna un valor por defecto de 'preparación para el trabajo'. Ninguna otra tarea en el trabajo puede tener el mismo ID que la tarea de preparación de trabajo. Si intentas enviar una tarea con el mismo id, el servicio por lotes rechaza la solicitud con el código de error TaskIdSameAsJobPreparationTask; si llamas directamente a la API REST, el código de estado HTTP es 409 (Conflicto).

rerunOnNodeRebootAfterSuccess

Si el servicio por lotes debe volver a ejecutar la tarea de preparación de tareas después de que un nodo de cómputo se reinicie. La Tarea de Preparación de Trabajo siempre se reejecuta si se reimagina un Nodo de Cálculo, o si la Tarea de Preparación de Trabajo no se completó (por ejemplo, porque el reinicio ocurrió mientras la Tarea estaba en ejecución). Por lo tanto, siempre debes escribir una tarea de preparación de tareas para que sea idempotente y se comporte correctamente si se ejecuta varias veces. El valor predeterminado es true.

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.

userIdentity

La identidad de usuario bajo la cual se ejecuta la Tarea de Preparación de Trabajos. Si se omite, la Tarea se ejecuta como un usuario no administrativo único de la Tarea en los Nodos de Cómputo de Windows, o como un usuario no administrativo único del Pool en los Nodos de Cómputo de Linux.

waitForSuccess

Si el servicio por lotes debe esperar a que la tarea de preparación del trabajo se complete con éxito antes de programar cualquier otra tarea del trabajo en el nodo de cómputo. Una tarea de preparación de trabajo se ha completado con éxito si sale con código de salida 0. Si es cierto y la Tarea de Preparación de Tareas falla en un Nodo, el servicio Batch vuelve a intentar la Tarea de Preparación de Tareas hasta su máximo de reintentos (según se especifica en el elemento de restricciones). Si la tarea aún no se ha completado con éxito tras todos los intentos, entonces el servicio por lotes no programará las tareas del trabajo en el nodo. El Nodo permanece activo y elegible para ejecutar tareas de otros trabajos. Si es falso, el servicio por lotes no esperará a que se complete la tarea de preparación de trabajo. En este caso, otras tareas del trabajo pueden comenzar a ejecutarse en el nodo de cómputo mientras la tarea de preparación de tarea sigue en ejecución; y aunque la tarea de Preparación de Tareas falle, las nuevas tareas seguirán programándose en el Nodo de Cómputo. El valor predeterminado es true.

Detalles de las propiedades

commandLine

La línea de comandos de la Tarea de Preparación 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 de preparación para el puesto.

constraints?: BatchTaskConstraints

Valor de propiedad

containerSettings

Los ajustes del contenedor bajo el cual se ejecuta la Tarea de Preparación de Trabajos. 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

environmentSettings

Una lista de ajustes de variables de entorno para la tarea de Preparación de Trabajo.

environmentSettings?: EnvironmentSetting[]

Valor de propiedad

id

Una cadena que identifica de forma única la tarea de preparación del puesto dentro del puesto. 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. Si no especificas esta propiedad, el servicio por lotes asigna un valor por defecto de 'preparación para el trabajo'. Ninguna otra tarea en el trabajo puede tener el mismo ID que la tarea de preparación de trabajo. Si intentas enviar una tarea con el mismo id, el servicio por lotes rechaza la solicitud con el código de error TaskIdSameAsJobPreparationTask; si llamas directamente a la API REST, el código de estado HTTP es 409 (Conflicto).

id?: string

Valor de propiedad

string

rerunOnNodeRebootAfterSuccess

Si el servicio por lotes debe volver a ejecutar la tarea de preparación de tareas después de que un nodo de cómputo se reinicie. La Tarea de Preparación de Trabajo siempre se reejecuta si se reimagina un Nodo de Cálculo, o si la Tarea de Preparación de Trabajo no se completó (por ejemplo, porque el reinicio ocurrió mientras la Tarea estaba en ejecución). Por lo tanto, siempre debes escribir una tarea de preparación de tareas para que sea idempotente y se comporte correctamente si se ejecuta varias veces. El valor predeterminado es true.

rerunOnNodeRebootAfterSuccess?: boolean

Valor de propiedad

boolean

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

userIdentity

La identidad de usuario bajo la cual se ejecuta la Tarea de Preparación de Trabajos. Si se omite, la Tarea se ejecuta como un usuario no administrativo único de la Tarea en los Nodos de Cómputo de Windows, o como un usuario no administrativo único del Pool en los Nodos de Cómputo de Linux.

userIdentity?: UserIdentity

Valor de propiedad

waitForSuccess

Si el servicio por lotes debe esperar a que la tarea de preparación del trabajo se complete con éxito antes de programar cualquier otra tarea del trabajo en el nodo de cómputo. Una tarea de preparación de trabajo se ha completado con éxito si sale con código de salida 0. Si es cierto y la Tarea de Preparación de Tareas falla en un Nodo, el servicio Batch vuelve a intentar la Tarea de Preparación de Tareas hasta su máximo de reintentos (según se especifica en el elemento de restricciones). Si la tarea aún no se ha completado con éxito tras todos los intentos, entonces el servicio por lotes no programará las tareas del trabajo en el nodo. El Nodo permanece activo y elegible para ejecutar tareas de otros trabajos. Si es falso, el servicio por lotes no esperará a que se complete la tarea de preparación de trabajo. En este caso, otras tareas del trabajo pueden comenzar a ejecutarse en el nodo de cómputo mientras la tarea de preparación de tarea sigue en ejecución; y aunque la tarea de Preparación de Tareas falle, las nuevas tareas seguirán programándose en el Nodo de Cómputo. El valor predeterminado es true.

waitForSuccess?: boolean

Valor de propiedad

boolean