1

我正在尝试通过此命令在 ECS 上创建 ECS fargate 类型任务, 如此aws ecs register-task-definition --family ${FAMILY} --cli-input-json file://${NAME}-v_${BUILD_NUMBER}.json --region ${REGION}的文档中所述。任务定义文件如下

任务定义 每件事似乎都可以很好地使用这个命令,并且在 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 启动类型的任务。 杰金斯命令

4

2 回答 2

6

在您的终端上,输入

which aws

并从 Jenkins 执行相同的命令。

我的猜测是您会发现您正在使用两个单独的 aws cli 二进制文件(其中一个太旧而无法支持 Fargate。)

于 2018-03-21T07:04:06.103 回答
1

实际上,我安装了两个不同的 aws cli。一个太老了,无法支持 Fargate。我更新了安装在根级别的 cli,而 jenkins 用户使用了不支持 Fargate 的过时 cli。

于 2018-03-21T08:28:36.950 回答