【问题标题】:AWS ECS Task - Cannot override CPUAWS ECS 任务 - 无法覆盖 CPU
【发布时间】:2020-06-01 11:17:57
【问题描述】:

我正在尝试在 SDK 的 RunTask 方法中覆盖 ECS 任务的 CPU 单元。

任务定义

{
  "ipcMode": null,
  "executionRoleArn": "arn:aws:iam::111459517389:role/ecsTaskExecutionRole",
  "containerDefinitions": [
    {
      ...,
      "portMappings": [
        {
          "hostPort": 80,
          "protocol": "tcp",
          "containerPort": 80
        },
        ...
      ],
      "command": null,
      "linuxParameters": null,
      "cpu": 256, # CONTAINER CPU Units (default)
      "environment": [
        {
          "name": "ECS_IMAGE_PULL_BEHAVIOR",
          "value": "prefer-cached"
        }
      ],
      "ulimits": null,
      ...
      "name": "some-job-container"
    }
  ],
  "placementConstraints": [],
  "memory": "8192", # TASK SIZE
  "taskRoleArn": "arn:aws:iam::111459517389:role/ecsTaskExecutionRole",
  "compatibilities": [
    "EC2",
    "FARGATE"
  ],
  "taskDefinitionArn": "arn:aws:ecs:eu-west-3:111459517389:task-definition/some-definition:7",
  "family": "some-job-dev",
  "requiresAttributes": [
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
   ...
  ],
  "pidMode": null,
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "networkMode": "awsvpc",
  "cpu": "4096", # TASK SIZE 
  "revision": 7,
  "status": "ACTIVE",
  "inferenceAccelerators": null,
  "proxyConfiguration": null,
  "volumes": []
}

这是 RunTask 参数

{
   "taskDefinition":"some-job-dev",
   "cluster":"some-cluster",
   "overrides":{
      "containerOverrides":[
         {
            "name":"some-job-container",
            "command":[
               "kosmos",
               "segmentation-queue"
            ],
            "cpu":4092,
            "memory":8192
         }
      ]
   },
   "networkConfiguration":{
      "awsvpcConfiguration":{
         "assignPublicIp":"ENABLED",
         "subnets":[
            "subnet-789",
            "subnet-456",
            "subnet-123"
         ]
      }
   }
}

当我使用这些参数运行任务时,容器的 内存 会被正确覆盖,而不是 CPU。 我正在关注 ECS 文档,但它仍然不起作用,我在这里遗漏了什么吗?

注意事项:

  • 我的任务启动类型是 Fargate

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-ecs aws-fargate


    【解决方案1】:

    我遇到了类似的问题,而且是断断续续的。你解决了吗?

    我看到您将值作为 int 传递,对我来说将它们指定为字符串会有所帮助。

    【讨论】:

    • 另外.. 我认为这可能是 AWS 界面中的错误。如果您只是调用 API,您可以看到覆盖生效(在我的情况下是 1024 而不是 4096),但在 AWS 的任务“查看”页面中,它仍然显示 4096。
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 2019-12-22
    • 2021-05-16
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2019-09-10
    • 2020-12-25
    相关资源
    最近更新 更多