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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

指定的 CPU 或内存值无效

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

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 单元或 vCPU 来表示 cpu 值,但在注册任务定义时,该值将转换为一个指示 CPU 单元的整数。虽然在任务定义中可以用 MiB 或 GB 来表示 memory 值,但在注册任务定义时,该值将转换为一个指示 MiB 的整数。

对于仅为 requiresCompatibilities 参数指定 EC2 的任务定义,支持的 CPU 值介于 128, CPU 单元(0.125 vCPU)和 10240 CPU 单元(10 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.125 vCPU 与 192 vCPU 之间。

注意

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