BatchJobManagerTaskOutput interface
指定作业管理器任务的详细信息。 作业管理器任务在创建作业时自动启动。 Batch 服务尝试在作业中的任何其他任务之前计划作业管理器任务。 收缩池时,Batch 服务会尝试保留尽可能长时间运行作业管理器任务的节点(即运行“正常”任务的计算节点在运行作业管理器任务的计算节点之前删除)。 当作业管理器任务失败且需要重启时,系统会尝试以最高优先级计划它。 如果没有空闲的计算节点可用,系统可能会终止池中正在运行的任务之一,并将其返回到队列,以便为作业管理器任务重启腾出空间。 请注意,一个作业中的作业管理器任务不优先于其他作业中的任务。 跨作业,只观察到作业级别优先级。 例如,如果优先级为 0 的作业管理器需要重新启动,则它不会取代优先级 1 作业的任务。 当在节点上触发恢复操作时,Batch 将重试任务。 恢复操作的示例包括(但不限于)在重新启动运行不正常的节点或计算节点因主机故障而消失时。 由于恢复操作而进行的重试与 maxTaskRetryCount 无关,并且不计入 maxTaskRetryCount。 即使 maxTaskRetryCount 为 0,也可能发生由于恢复操作而导致的内部重试。 因此,所有任务都应是幂等的。 这意味着任务需要容忍中断和重启,而不会导致任何损坏或重复数据。 长时间运行的任务的最佳做法是使用某种形式的检查点。
属性
| allow |
作业管理器任务是否可以在现成/低优先级计算节点上运行。 默认值为 true。 |
| application |
Batch 服务在运行命令行之前将部署到计算节点的应用程序包列表。应用程序包将下载并部署到共享目录,而不是任务工作目录。 因此,如果引用的应用程序包已在计算节点上,并且是最新的,则不会重新下载它;使用计算节点上的现有副本。 如果无法安装引用的应用程序包,例如由于包已删除或下载失败,则任务将失败。 |
| authentication |
任务可用于执行 Batch 服务操作的身份验证令牌的设置。 如果设置了此属性,Batch 服务会向任务提供身份验证令牌,该令牌可用于对 Batch 服务操作进行身份验证,而无需帐户访问密钥。 令牌通过AZ_BATCH_AUTHENTICATION_TOKEN环境变量提供。 任务可以使用令牌执行的操作取决于设置。 例如,任务可以请求作业权限,以便将其他任务添加到作业,或检查作业的状态或作业下的其他任务的状态。 |
| command |
作业管理器任务的命令行。 命令行未在 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 | 应用于作业管理器任务的约束。 |
| container |
运行作业管理器任务的容器的设置。 如果运行此任务的池已设置 containerConfiguration 集,则还必须设置该池。 如果运行此任务的池没有 containerConfiguration 集,则不能设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。 |
| display |
作业管理器任务的显示名称。 它不是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。 |
| environment |
作业管理器任务的环境变量设置列表。 |
| id | 一个字符串,用于唯一标识作业中的作业管理器任务。 ID 可以包含字母数字字符的任意组合,包括连字符和下划线,不能包含超过 64 个字符。 |
| kill |
作业管理器任务的完成是否表示整个作业的完成。 如果为 true,则当作业管理器任务完成时,Batch 服务会将作业标记为已完成。 如果当前仍在运行任何任务(作业发布除外),这些任务将终止。 如果为 false,则作业管理器任务的完成不会影响作业状态。 在这种情况下,应使用 onAllTasksComplete 属性终止作业,或者让客户端或用户显式终止作业。 例如,如果作业管理器创建了一组任务,但在执行中没有进一步的角色。 默认值为 true。 如果使用 onAllTasksComplete 和 onTaskFailure 属性来控制作业生存期,并使用作业管理器任务仅创建作业的任务(不监视进度),则必须将 killJobOnCompletion 设置为 false。 |
| output |
运行命令行后,Batch 服务将从计算节点上传的文件列表。 对于多实例任务,文件将仅从执行主任务的计算节点上传。 |
| required |
任务运行所需的计划槽数。 默认值为 1。 如果节点有足够的可用计划槽,则只能计划任务在计算节点上运行。 对于多实例任务,此属性不受支持,不得指定。 |
| resource |
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 此元素下列出的文件位于任务的工作目录中。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。 |
| run |
作业管理器任务是否需要独占使用其运行位置的计算节点。 如果为 true,则只要作业管理器正在运行,其他任务就不会在同一节点上运行。 如果为 false,则其他任务可以在计算节点上与作业管理器同时运行。 作业管理器任务通常根据计算节点的并发任务限制进行计数,因此仅当计算节点允许多个并发任务时,这才相关。 默认值为 true。 |
| user |
运行作业管理器任务的用户标识。 如果省略,任务将作为任务唯一的非管理用户运行。 |
属性详细信息
allowLowPriorityNode
作业管理器任务是否可以在现成/低优先级计算节点上运行。 默认值为 true。
allowLowPriorityNode?: boolean
属性值
boolean
applicationPackageReferences
Batch 服务在运行命令行之前将部署到计算节点的应用程序包列表。应用程序包将下载并部署到共享目录,而不是任务工作目录。 因此,如果引用的应用程序包已在计算节点上,并且是最新的,则不会重新下载它;使用计算节点上的现有副本。 如果无法安装引用的应用程序包,例如由于包已删除或下载失败,则任务将失败。
applicationPackageReferences?: BatchApplicationPackageReferenceOutput[]
属性值
authenticationTokenSettings
任务可用于执行 Batch 服务操作的身份验证令牌的设置。 如果设置了此属性,Batch 服务会向任务提供身份验证令牌,该令牌可用于对 Batch 服务操作进行身份验证,而无需帐户访问密钥。 令牌通过AZ_BATCH_AUTHENTICATION_TOKEN环境变量提供。 任务可以使用令牌执行的操作取决于设置。 例如,任务可以请求作业权限,以便将其他任务添加到作业,或检查作业的状态或作业下的其他任务的状态。
authenticationTokenSettings?: AuthenticationTokenSettingsOutput
属性值
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
containerSettings
运行作业管理器任务的容器的设置。 如果运行此任务的池已设置 containerConfiguration 集,则还必须设置该池。 如果运行此任务的池没有 containerConfiguration 集,则不能设置此设置。 指定此项后,AZ_BATCH_NODE_ROOT_DIR(节点上的 Azure Batch 目录的根目录)以递归方式映射到容器中,所有任务环境变量都映射到容器中,并在容器中执行 Task 命令行。 在AZ_BATCH_NODE_ROOT_DIR外部容器中生成的文件可能不会反映在主机磁盘上,这意味着 Batch 文件 API 将无法访问这些文件。
containerSettings?: BatchTaskContainerSettingsOutput
属性值
displayName
作业管理器任务的显示名称。 它不是唯一的,可以包含最大长度为 1024 的任何 Unicode 字符。
displayName?: string
属性值
string
environmentSettings
id
一个字符串,用于唯一标识作业中的作业管理器任务。 ID 可以包含字母数字字符的任意组合,包括连字符和下划线,不能包含超过 64 个字符。
id: string
属性值
string
killJobOnCompletion
作业管理器任务的完成是否表示整个作业的完成。 如果为 true,则当作业管理器任务完成时,Batch 服务会将作业标记为已完成。 如果当前仍在运行任何任务(作业发布除外),这些任务将终止。 如果为 false,则作业管理器任务的完成不会影响作业状态。 在这种情况下,应使用 onAllTasksComplete 属性终止作业,或者让客户端或用户显式终止作业。 例如,如果作业管理器创建了一组任务,但在执行中没有进一步的角色。 默认值为 true。 如果使用 onAllTasksComplete 和 onTaskFailure 属性来控制作业生存期,并使用作业管理器任务仅创建作业的任务(不监视进度),则必须将 killJobOnCompletion 设置为 false。
killJobOnCompletion?: boolean
属性值
boolean
outputFiles
运行命令行后,Batch 服务将从计算节点上传的文件列表。 对于多实例任务,文件将仅从执行主任务的计算节点上传。
outputFiles?: OutputFileOutput[]
属性值
requiredSlots
任务运行所需的计划槽数。 默认值为 1。 如果节点有足够的可用计划槽,则只能计划任务在计算节点上运行。 对于多实例任务,此属性不受支持,不得指定。
requiredSlots?: number
属性值
number
resourceFiles
Batch 服务在运行命令行之前将下载到计算节点的文件列表。 此元素下列出的文件位于任务的工作目录中。 资源文件列表的最大大小。 超过最大大小时,请求将失败,响应错误代码将为 RequestEntityTooLarge。 如果发生这种情况,则必须减小 ResourceFiles 的集合大小。 这可以使用 .zip 文件、应用程序包或 Docker 容器来实现。
resourceFiles?: ResourceFileOutput[]
属性值
runExclusive
作业管理器任务是否需要独占使用其运行位置的计算节点。 如果为 true,则只要作业管理器正在运行,其他任务就不会在同一节点上运行。 如果为 false,则其他任务可以在计算节点上与作业管理器同时运行。 作业管理器任务通常根据计算节点的并发任务限制进行计数,因此仅当计算节点允许多个并发任务时,这才相关。 默认值为 true。
runExclusive?: boolean
属性值
boolean