Amazon ECS 中指定的 CPU 或内存值无效 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 中指定的 CPU 或内存值无效

使用 Amazon ECS API 或 Amazon CLI 注册任务定义时,或者如果指定了无效的 cpumemory,则返回以下错误。

An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide.
注意

使用 Terraform 时,可能会返回以下错误。

Error: ClientException: No Fargate configuration exists for given values.

要解决此问题,您必须在任务定义中为任务 CPU 和内存指定受支持的值。在任务定义中,cpu 值可以用 CPU 单元数或 vCPU 数表示。注册任务定义时,其将转换为指示 CPU 单元的整数。在任务定义中,memory 值可以用 MiB 或 GB 表示。注册任务定义时,其将转换为指示 MiB 的整数。

对于仅为 requiresCompatibilities 参数指定 EC2 的任务定义,支持的 CPU 值介于 256, CPU 单元(0.25 vCPU)和 16384 CPU 单元(16 vCPU)之间。内存值必须为整数,且限制取决于您使用的底层 Amazon EC2 实例上的可用内存量。

对于为 requiresCompatibilities 参数指定的 FARGATE 任务定义(即使也指定了 EC2),必须使用下表中的一个值。这些值决定了 CPU 和内存参数支持的值范围。

对于 Fargate 上托管的任务,下表显示了有效的 CPU 和内存组合。JSON 文件中的内存值以 MiB 为单位指定。您可以通过将 GB 值乘以 1024 来其转换为 MiB。例如 1 GB = 1024 MiB。

CPU 值

内存值

Amazon Fargate 支持的操作系统

256 (.25 vCPU)

512MiB、1GB、2GB

Linux

512 (.5 vCPU)

1GB、2GB、3GB、4GB

Linux

1024 (1 vCPU)

2GB、3GB、4GB、5GB、6GB、7GB、8GB

Linux、Windows

2048 (2 vCPU)

4GB 到 16GB 之间 (以 1GB 为增量)

Linux、Windows

4096 (4 vCPU)

8GB 到 30GB 之间 (以 1GB 为增量)

Linux、Windows

8192 (8 vCPU)

注意

此选项需要 Linux 平台 1.4.0 或更高版本。

16 GB 到 60 GB 之间(以 4 GB 为增量)

Linux

16384 (16vCPU)

注意

此选项需要 Linux 平台 1.4.0 或更高版本。

32 GB 到 120 GB 之间(以 8 GB 为增量)

Linux

对于 Amazon EC2 上托管的任务,受支持的任务 CPU 值介于 0.25 个 vCPU 与 192 个 vCPU 之间。

注意

Windows 容器将忽略任务级 CPU 和内存参数。