通过 Jenkins 创建 Amazon ECS Fargate 任务
Amazon ECS Fargate task creation through Jenkins
我正在尝试通过此命令在 ECS 上创建 ECS fargate 类型的任务
aws ecs register-task-definition --family ${FAMILY} --cli-input-json file://${NAME}-v_${BUILD_NUMBER}.json --region ${REGION}
如文档 here 中所述。
任务定义文件如下
一切似乎都适用于此命令,并且在 CLI 中有正确的响应。但是当我尝试在 Jenkins 中做同样的事情时,我必须设置 CI 环境
它给出以下错误。
Parameter validation failed:
Unknown parameter in input: "cpu", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "executionRoleArn", must be one of: family,
taskRoleArn, networkMode, containerDefinitions, volumes
Unknown parameter in input: "memory", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "requiresCompatibilities", must be one of:
family, taskRoleArn, networkMode, containerDefinitions, volumes
如果我删除了任务定义 json 文件中的那些标签。它创建了一个我不需要的 EC2 类型任务。我只想创建一个 fargate 启动类型任务。
从您的终端输入
which aws
并从 Jenkins 执行相同的命令。
我猜您会发现您正在使用两个单独的 aws cli 二进制文件(其中一个太旧,无法支持 Fargate。)
实际上,我安装了两个不同的 aws cli。还有一个太老了,无法支持 Fargate。我更新了根级别安装的 cli,而 jenkins 用户使用不支持 Fargate 的过时 cli。
我正在尝试通过此命令在 ECS 上创建 ECS fargate 类型的任务
aws ecs register-task-definition --family ${FAMILY} --cli-input-json file://${NAME}-v_${BUILD_NUMBER}.json --region ${REGION}
如文档 here 中所述。
任务定义文件如下
Parameter validation failed:
Unknown parameter in input: "cpu", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "executionRoleArn", must be one of: family,
taskRoleArn, networkMode, containerDefinitions, volumes
Unknown parameter in input: "memory", must be one of: family, taskRoleArn,
networkMode, containerDefinitions, volumes
Unknown parameter in input: "requiresCompatibilities", must be one of:
family, taskRoleArn, networkMode, containerDefinitions, volumes
如果我删除了任务定义 json 文件中的那些标签。它创建了一个我不需要的 EC2 类型任务。我只想创建一个 fargate 启动类型任务。
从您的终端输入
which aws
并从 Jenkins 执行相同的命令。
我猜您会发现您正在使用两个单独的 aws cli 二进制文件(其中一个太旧,无法支持 Fargate。)
实际上,我安装了两个不同的 aws cli。还有一个太老了,无法支持 Fargate。我更新了根级别安装的 cli,而 jenkins 用户使用不支持 Fargate 的过时 cli。