CloudTask interface
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
| affinity |
Sugerencia de localidad que puede usar el servicio Batch para seleccionar un nodo de proceso en el que iniciar la nueva tarea. |
| application |
Lista de paquetes 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 al que se hace referencia ya está en el nodo 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 al que se hace referencia, por ejemplo porque el paquete se ha eliminado o porque se produjo un error de descarga, se produce un error en la tarea. |
| authentication |
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. |
| command |
Línea de comandos de la tarea. Para las tareas de varias instancias, la línea de comandos se ejecuta como tarea principal, después de que la tarea principal y todas las subtareas hayan terminado de ejecutar la línea de comandos de coordinación. 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 de ejecución que se aplican a esta tarea. |
| container |
Configuración del contenedor en el que se ejecuta la tarea. 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. |
| creation |
Hora de creación de la tarea. |
| depends |
Las tareas de las que depende esta tarea. Esta tarea no se programará hasta que todas las tareas de las que dependa se hayan completado correctamente. Si alguna de esas tareas produce un error y agota sus recuentos de reintentos, esta tarea nunca se programará. |
| display |
Nombre para mostrar de la tarea. El nombre para mostrar no debe ser único y puede contener caracteres Unicode de hasta una longitud máxima de 1024. |
| environment |
Lista de opciones de configuración de variables de entorno para la tarea. |
| e |
ETag de la tarea. Se trata de una cadena opaca. Puede usarlo para detectar si la tarea ha cambiado entre solicitudes. En concreto, puede pasar la ETag al actualizar una tarea para especificar que los cambios deben surtir efecto solo si nadie más ha modificado la tarea mientras tanto. |
| execution |
Información sobre la ejecución de la tarea. |
| exit |
Cómo debe responder el servicio Batch cuando se complete la tarea. |
| id | Cadena que identifica de forma única la tarea 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. |
| last |
Hora de la última modificación de la tarea. |
| multi |
Objeto que indica que la tarea es una tarea de varias instancias y contiene información sobre cómo ejecutar la tarea de varias instancias. |
| node |
Información sobre el nodo de proceso en el que se ejecutó la tarea. |
| output |
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. |
| previous |
Estado anterior de la tarea. Esta propiedad no se establece si la tarea está en su estado activo inicial. Entre los valores posibles se incluyen: 'active', 'prepare', 'running', 'completed' |
| previous |
Hora a la que la tarea entró en su estado anterior. Esta propiedad no se establece si la tarea está en su estado activo inicial. |
| required |
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. |
| resource |
Lista de archivos que el servicio Batch descargará en el nodo de proceso antes de ejecutar la línea de comandos. En el caso de las tareas de varias instancias, los archivos de recursos solo se descargarán en el nodo de proceso en el que se ejecuta la tarea principal. 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. |
| state | Estado actual de la tarea. Entre los valores posibles se incluyen: 'active', 'prepare', 'running', 'completed' |
| state |
Hora en la que la tarea entró en su estado actual. |
| stats | Estadísticas de uso de recursos para la tarea. |
| url | Dirección URL de la tarea. |
| user |
Identidad de usuario en la que se ejecuta la tarea. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea. |
Detalles de las propiedades
affinityInfo
Sugerencia de localidad que puede usar el servicio Batch para seleccionar un nodo de proceso en el que iniciar la nueva tarea.
affinityInfo?: AffinityInformation
Valor de propiedad
applicationPackageReferences
Lista de paquetes 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 al que se hace referencia ya está en el nodo 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 al que se hace referencia, por ejemplo porque el paquete se ha eliminado o porque se produjo un error de 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. Para las tareas de varias instancias, la línea de comandos se ejecuta como tarea principal, después de que la tarea principal y todas las subtareas hayan terminado de ejecutar la línea de comandos de coordinación. 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 de ejecución que se aplican a esta tarea.
constraints?: TaskConstraints
Valor de propiedad
containerSettings
Configuración del contenedor en el que se ejecuta la tarea. 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
creationTime
Hora de creación de la tarea.
creationTime?: Date
Valor de propiedad
Date
dependsOn
Las tareas de las que depende esta tarea. Esta tarea no se programará hasta que todas las tareas de las que dependa se hayan completado correctamente. Si alguna de esas tareas produce un error y agota sus recuentos de reintentos, esta tarea nunca se programará.
dependsOn?: TaskDependencies
Valor de propiedad
displayName
Nombre para mostrar de la tarea. El nombre para mostrar no debe 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.
environmentSettings?: EnvironmentSetting[]
Valor de propiedad
eTag
ETag de la tarea. Se trata de una cadena opaca. Puede usarlo para detectar si la tarea ha cambiado entre solicitudes. En concreto, puede pasar la ETag al actualizar una tarea para especificar que los cambios deben surtir efecto solo si nadie más ha modificado la tarea mientras tanto.
eTag?: string
Valor de propiedad
string
executionInfo
Información sobre la ejecución de la tarea.
executionInfo?: TaskExecutionInformation
Valor de propiedad
exitConditions
Cómo debe responder el servicio Batch cuando se complete la tarea.
exitConditions?: ExitConditions
Valor de propiedad
id
Cadena que identifica de forma única la tarea 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
lastModified
Hora de la última modificación de la tarea.
lastModified?: Date
Valor de propiedad
Date
multiInstanceSettings
Objeto que indica que la tarea es una tarea de varias instancias y contiene información sobre cómo ejecutar la tarea de varias instancias.
multiInstanceSettings?: MultiInstanceSettings
Valor de propiedad
nodeInfo
Información sobre el nodo de proceso en el que se ejecutó la tarea.
nodeInfo?: ComputeNodeInformation
Valor de propiedad
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
previousState
Estado anterior de la tarea. Esta propiedad no se establece si la tarea está en su estado activo inicial. Entre los valores posibles se incluyen: 'active', 'prepare', 'running', 'completed'
previousState?: TaskState
Valor de propiedad
previousStateTransitionTime
Hora a la que la tarea entró en su estado anterior. Esta propiedad no se establece si la tarea está en su estado activo inicial.
previousStateTransitionTime?: Date
Valor de propiedad
Date
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. En el caso de las tareas de varias instancias, los archivos de recursos solo se descargarán en el nodo de proceso en el que se ejecuta la tarea principal. 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
state
Estado actual de la tarea. Entre los valores posibles se incluyen: 'active', 'prepare', 'running', 'completed'
state?: TaskState
Valor de propiedad
stateTransitionTime
Hora en la que la tarea entró en su estado actual.
stateTransitionTime?: Date
Valor de propiedad
Date
stats
Estadísticas de uso de recursos para la tarea.
stats?: TaskStatistics
Valor de propiedad
url
Dirección URL de la tarea.
url?: string
Valor de propiedad
string
userIdentity
Identidad de usuario en la que se ejecuta la tarea. Si se omite, la tarea se ejecuta como un usuario no administrativo único para la tarea.
userIdentity?: UserIdentity