你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

BatchJobManagerTask interface

指定作业管理器任务的详细信息。 作业管理器任务在创建作业时自动启动。 Batch 服务尝试在作业中的任何其他任务之前计划作业管理器任务。 收缩池时,Batch 服务会尝试保留尽可能长时间运行作业管理器任务的节点(即运行“正常”任务的计算节点在运行作业管理器任务的计算节点之前删除)。 当作业管理器任务失败且需要重启时,系统会尝试以最高优先级计划它。 如果没有空闲的计算节点可用,系统可能会终止池中正在运行的任务之一,并将其返回到队列,以便为作业管理器任务重启腾出空间。 请注意,一个作业中的作业管理器任务不优先于其他作业中的任务。 跨作业,只观察到作业级别优先级。 例如,如果优先级为 0 的作业管理器需要重新启动,则它不会取代优先级 1 作业的任务。 当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。

属性

allowLowPriorityNode

作业管理器任务是否可以在特定/低优先级计算节点上运行。 默认值为真。

applicationPackageReferences

批处理服务在运行命令行前将部署到计算节点的应用包列表。应用包被下载并部署到共享目录,而非任务工作目录。 因此,如果引用的应用包已经在计算节点上且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果引用的应用包无法安装,例如因为该包已被删除或下载失败,任务即告失败。

commandLine

作业管理器任务的命令行。 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果你想利用这些功能,应该在命令行调用 shell,比如在 Windows 中使用“cmd /c MyCommand”,在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对路径(相对于任务工作目录),或使用 Batch 提供的环境变量(https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。

constraints

适用于作业管理器任务的约束条件。

containerSettings

作业管理器任务运行的容器设置。 如果执行该任务的池设置了containerConfiguration,也必须设置。 如果执行该任务的池没有设置 containerConfiguration ,那么必须不设置。 当指定时,所有位于AZ_BATCH_NODE_ROOT_DIR(节点上Azure Batch目录根)下方的所有目录递归映射到容器中,所有任务环境变量映射到容器中,任务命令行在容器中执行。 容器中AZ_BATCH_NODE_ROOT_DIR外生成的文件可能不会反映到主机磁盘,这意味着批处理文件API无法访问这些文件。

displayName

作业管理器任务的显示名称。 它不必是唯一的,可以包含任意 Unicode 字符,长度最多可达 1024。

environmentSettings

作业管理器任务的环境变量设置列表。

id

一个字符串,唯一标识作业管理器任务。 ID可以包含任意组合的字母数字字符,包括连字符和下划线,且字符数不得超过64个。

killJobOnCompletion

任务管理器任务的完成是否意味着整个任务的完成。 如果成立,当作业管理器任务完成时,批处理服务会标记该任务为完成。 如果此时仍有任务在运行(除了作业释放),这些任务将被终止。 如果为假,作业管理器任务的完成不会影响作业状态。 在这种情况下,你应该使用 onAllTasksComplete 属性来终止作业,或者让客户端或用户明确终止作业。 例如,如果作业管理器创建了一组任务,但之后不再参与任务的执行。 默认值为真。 如果你使用 onAllTasksComplete 和 onTaskFailure 属性来控制作业生命周期,并且只用作业管理器任务创建任务(不用于监控进度),那么将 killJobOnCompletion 设置为 false 非常重要。

outputFiles

批处理服务运行命令行后,将从计算节点上传的文件列表。 对于多实例任务,文件只会从执行主任务的计算节点上传。

requiredSlots

任务运行所需的调度时隙数。 默认值为 1。 只有当节点有足够的空闲调度槽时,任务才能被调度到计算节点上运行。 对于多实例任务,该属性不被支持,也不应指定。

resourceFiles

Batch 服务在运行命令行之前将下载到计算节点的文件列表。 此元素下列出的文件位于任务的工作目录中。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。

runExclusive

作业管理器任务是否需要独占其运行的计算节点。 如果属实,只要作业管理器运行,其他任务就不会在同一节点上运行。 如果为假,其他任务可以在计算节点上与作业管理器同时运行。 作业管理器任务通常计入计算节点的并发任务限制,因此只有当计算节点允许多个并发任务时才相关。 默认值为真。

userIdentity

作业管理器任务运行的用户身份。 如果省略,任务将作为任务独一无二的非管理员用户运行。

属性详细信息

allowLowPriorityNode

作业管理器任务是否可以在特定/低优先级计算节点上运行。 默认值为真。

allowLowPriorityNode?: boolean

属性值

boolean

applicationPackageReferences

批处理服务在运行命令行前将部署到计算节点的应用包列表。应用包被下载并部署到共享目录,而非任务工作目录。 因此,如果引用的应用包已经在计算节点上且是最新的,则不会重新下载;使用计算节点上的现有副本。 如果引用的应用包无法安装,例如因为该包已被删除或下载失败,任务即告失败。

applicationPackageReferences?: BatchApplicationPackageReference[]

属性值

commandLine

作业管理器任务的命令行。 命令行未在 shell 下运行,因此不能利用 shell 功能(如环境变量扩展)。 如果你想利用这些功能,应该在命令行调用 shell,比如在 Windows 中使用“cmd /c MyCommand”,在 Linux 中使用“/bin/sh -c MyCommand”。 如果命令行引用文件路径,则应使用相对路径(相对于任务工作目录),或使用 Batch 提供的环境变量(https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)。

commandLine: string

属性值

string

constraints

适用于作业管理器任务的约束条件。

constraints?: BatchTaskConstraints

属性值

containerSettings

作业管理器任务运行的容器设置。 如果执行该任务的池设置了containerConfiguration,也必须设置。 如果执行该任务的池没有设置 containerConfiguration ,那么必须不设置。 当指定时,所有位于AZ_BATCH_NODE_ROOT_DIR(节点上Azure Batch目录根)下方的所有目录递归映射到容器中,所有任务环境变量映射到容器中,任务命令行在容器中执行。 容器中AZ_BATCH_NODE_ROOT_DIR外生成的文件可能不会反映到主机磁盘,这意味着批处理文件API无法访问这些文件。

containerSettings?: BatchTaskContainerSettings

属性值

displayName

作业管理器任务的显示名称。 它不必是唯一的,可以包含任意 Unicode 字符,长度最多可达 1024。

displayName?: string

属性值

string

environmentSettings

作业管理器任务的环境变量设置列表。

environmentSettings?: EnvironmentSetting[]

属性值

id

一个字符串,唯一标识作业管理器任务。 ID可以包含任意组合的字母数字字符,包括连字符和下划线,且字符数不得超过64个。

id: string

属性值

string

killJobOnCompletion

任务管理器任务的完成是否意味着整个任务的完成。 如果成立,当作业管理器任务完成时,批处理服务会标记该任务为完成。 如果此时仍有任务在运行(除了作业释放),这些任务将被终止。 如果为假,作业管理器任务的完成不会影响作业状态。 在这种情况下,你应该使用 onAllTasksComplete 属性来终止作业,或者让客户端或用户明确终止作业。 例如,如果作业管理器创建了一组任务,但之后不再参与任务的执行。 默认值为真。 如果你使用 onAllTasksComplete 和 onTaskFailure 属性来控制作业生命周期,并且只用作业管理器任务创建任务(不用于监控进度),那么将 killJobOnCompletion 设置为 false 非常重要。

killJobOnCompletion?: boolean

属性值

boolean

outputFiles

批处理服务运行命令行后,将从计算节点上传的文件列表。 对于多实例任务,文件只会从执行主任务的计算节点上传。

outputFiles?: OutputFile[]

属性值

requiredSlots

任务运行所需的调度时隙数。 默认值为 1。 只有当节点有足够的空闲调度槽时,任务才能被调度到计算节点上运行。 对于多实例任务,该属性不被支持,也不应指定。

requiredSlots?: number

属性值

number

resourceFiles

Batch 服务在运行命令行之前将下载到计算节点的文件列表。 此元素下列出的文件位于任务的工作目录中。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。

resourceFiles?: ResourceFile[]

属性值

runExclusive

作业管理器任务是否需要独占其运行的计算节点。 如果属实,只要作业管理器运行,其他任务就不会在同一节点上运行。 如果为假,其他任务可以在计算节点上与作业管理器同时运行。 作业管理器任务通常计入计算节点的并发任务限制,因此只有当计算节点允许多个并发任务时才相关。 默认值为真。

runExclusive?: boolean

属性值

boolean

userIdentity

作业管理器任务运行的用户身份。 如果省略,任务将作为任务独一无二的非管理员用户运行。

userIdentity?: UserIdentity

属性值