【问题标题】:Amazon ECS Fargate task creation through Jenkins通过 Jenkins 创建 Amazon ECS Fargate 任务
【发布时间】:2018-03-21 16:28:36
【问题描述】:

我正在尝试通过此命令在 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 启动类型的任务。

【问题讨论】:

  • 我无法从你的截图中看出,你在创建 ecs 服务时指定的“启动类型”是什么?
  • 启动类型是fargate。看看第一个屏幕截图,有一个名为“requiresCompatibilities”的键

标签: amazon-web-services continuous-deployment amazon-ecs aws-fargate


【解决方案1】:

在终端输入

which aws

并从 Jenkins 执行相同的命令。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-26
      • 2018-12-14
      • 1970-01-01
      • 2018-11-04
      • 2019-09-10
      • 1970-01-01
      • 2019-02-10
      • 2019-09-25
      • 1970-01-01
      相关资源
      最近更新 更多