如何覆盖 AWS Batch 作业中的 docker 映像?

GuS*_*uku 9 amazon-web-services aws-batch

在 AWS Batch 中,我尝试在提交作业时覆盖作业定义中硬编码的图像。但我没有看到任何相关文档。

当我尝试image在作业提交期间添加字段时,我得到:

参数验证失败:输入中的未知参数:“image”,必须是以下之一:jobName、jobQueue、arrayProperties、dependsOn、jobDefinition、parameters、containerOverrides、retryStrategy、timeout

或者

参数验证失败:containerOverrides 中的未知参数:“image”,必须是以下之一:vcpu、内存、命令、环境

小智 4

我相信这是不可能的。

image是一个容器属性,正如本文档将其与命令、vcpu 和内存一起显示的那样,但许多容器属性(例如作业角色 arn)并未在文档中列为可重写aws batch submit-job help

您的第二条错误消息显示了可以覆盖的所有容器属性,与文档中的属性相匹配。

--container-overrides (structure)

JSON 格式的容器覆盖列表,指定指定作业定义中的容器名称及其应接收的覆盖。您可以使用命令覆盖来覆盖容器的默认命令(在作业定义或 Docker 映像中指定)。您还可以覆盖容器上的现有环境变量(在作业定义或 Docker 映像中指定),或者通过环境覆盖向容器添加新的环境变量。

简写语法:

vcpus=integer,memory=integer,command=string,string,instanceType=string,environment=[{name=string,value=string},{name=string,value=string}],resourceRequirements=[{value=string,type=string},{value=string,type=string}]
Run Code Online (Sandbox Code Playgroud)

JSON 语法:

{
    "vcpus": integer,
    "memory": integer,
    "command": ["string", ...],
    "instanceType": "string",
    "environment": [
        {
            "name": "string",
            "value": "string"
        }
        ...
    ],
    "resourceRequirements": [
        {
        "value": "string",
        "type": "GPU"
        }
        ...
    ]
Run Code Online (Sandbox Code Playgroud)