Compartir a través de


JobPreparationTask interface

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

Línea de comandos de la tarea de preparación del trabajo. 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 de preparación del trabajo.

containerSettings

Configuración del contenedor en el que se ejecuta la tarea de preparación del trabajo. 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.

environmentSettings

Lista de la configuración de variables de entorno para la tarea de preparación del trabajo.

id

Cadena que identifica de forma única la tarea de preparación del trabajo 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. Si no especifica esta propiedad, el servicio Batch asigna un valor predeterminado de "jobpreparation". Ninguna otra tarea del trabajo puede tener el mismo identificador que la tarea de preparación del trabajo. Si intenta enviar una tarea con el mismo identificador, el servicio Batch rechaza la solicitud con el código de error TaskIdSameAsJobPreparationTask; Si llama directamente a la API REST, el código de estado HTTP es 409 (conflicto).

rerunOnNodeRebootAfterSuccess

Si el servicio Batch debe volver a ejecutar la tarea de preparación del trabajo después de reiniciar un nodo de proceso. La tarea de preparación del trabajo siempre se vuelve a ejecutar si se vuelve a crear una imagen de un nodo de proceso o si la tarea de preparación del trabajo no se completó (por ejemplo, porque se produjo el reinicio mientras se estaba ejecutando la tarea). Por lo tanto, siempre debe escribir una tarea de preparación del trabajo para que sea idempotente y para comportarse 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

Identidad de usuario en la que se ejecuta la tarea de preparación del trabajo. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea en nodos de proceso de Windows o un usuario no administrativo único para el grupo en nodos de proceso de Linux.

waitForSuccess

Si el servicio Batch debe esperar a que la tarea de preparación del trabajo se complete correctamente antes de programar cualquier otra tarea del trabajo en el nodo de proceso. Una tarea de preparación de trabajos se ha completado correctamente si se cierra con el código de salida 0. Si es true y se produce un error en la tarea de preparación del trabajo en un nodo, el servicio Batch reintenta la tarea de preparación del trabajo hasta su recuento máximo de reintentos (como se especifica en el elemento constraints). Si la tarea todavía no se ha completado correctamente después de todos los reintentos, el servicio Batch no programará tareas del trabajo en el nodo. El nodo permanece activo y apto para ejecutar tareas de otros trabajos. Si es false, el servicio Batch no esperará a que se complete la tarea de preparación del trabajo. En este caso, otras tareas del trabajo pueden empezar a ejecutarse en el nodo de proceso mientras la tarea de preparación del trabajo todavía se está ejecutando; e incluso si se produce un error en la tarea de preparación del trabajo, las nuevas tareas seguirán programando en el nodo de proceso. El valor predeterminado es true.

Detalles de las propiedades

commandLine

Línea de comandos de la tarea de preparación del trabajo. 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 de preparación del trabajo.

constraints?: TaskConstraints

Valor de propiedad

containerSettings

Configuración del contenedor en el que se ejecuta la tarea de preparación del trabajo. 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

environmentSettings

Lista de la configuración de variables de entorno para la tarea de preparación del trabajo.

environmentSettings?: EnvironmentSetting[]

Valor de propiedad

id

Cadena que identifica de forma única la tarea de preparación del trabajo 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. Si no especifica esta propiedad, el servicio Batch asigna un valor predeterminado de "jobpreparation". Ninguna otra tarea del trabajo puede tener el mismo identificador que la tarea de preparación del trabajo. Si intenta enviar una tarea con el mismo identificador, el servicio Batch rechaza la solicitud con el código de error TaskIdSameAsJobPreparationTask; Si llama directamente a la API REST, el código de estado HTTP es 409 (conflicto).

id?: string

Valor de propiedad

string

rerunOnNodeRebootAfterSuccess

Si el servicio Batch debe volver a ejecutar la tarea de preparación del trabajo después de reiniciar un nodo de proceso. La tarea de preparación del trabajo siempre se vuelve a ejecutar si se vuelve a crear una imagen de un nodo de proceso o si la tarea de preparación del trabajo no se completó (por ejemplo, porque se produjo el reinicio mientras se estaba ejecutando la tarea). Por lo tanto, siempre debe escribir una tarea de preparación del trabajo para que sea idempotente y para comportarse 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

Identidad de usuario en la que se ejecuta la tarea de preparación del trabajo. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea en nodos de proceso de Windows o un usuario no administrativo único para el grupo en nodos de proceso de Linux.

userIdentity?: UserIdentity

Valor de propiedad

waitForSuccess

Si el servicio Batch debe esperar a que la tarea de preparación del trabajo se complete correctamente antes de programar cualquier otra tarea del trabajo en el nodo de proceso. Una tarea de preparación de trabajos se ha completado correctamente si se cierra con el código de salida 0. Si es true y se produce un error en la tarea de preparación del trabajo en un nodo, el servicio Batch reintenta la tarea de preparación del trabajo hasta su recuento máximo de reintentos (como se especifica en el elemento constraints). Si la tarea todavía no se ha completado correctamente después de todos los reintentos, el servicio Batch no programará tareas del trabajo en el nodo. El nodo permanece activo y apto para ejecutar tareas de otros trabajos. Si es false, el servicio Batch no esperará a que se complete la tarea de preparación del trabajo. En este caso, otras tareas del trabajo pueden empezar a ejecutarse en el nodo de proceso mientras la tarea de preparación del trabajo todavía se está ejecutando; e incluso si se produce un error en la tarea de preparación del trabajo, las nuevas tareas seguirán programando en el nodo de proceso. El valor predeterminado es true.

waitForSuccess?: boolean

Valor de propiedad

boolean