疑難排解 Amazon ECS 任務定義無效的 CPU 或記憶體錯誤 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

疑難排解 Amazon ECS 任務定義無效的 CPU 或記憶體錯誤

使用 Amazon ECS API 註冊任務定義時 AWS CLI,或者如果指定無效cpumemory值,則會傳回下列錯誤。

An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task.
注意

使用 Terraform 時,可能會返回以下錯誤。

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

若要解決這個問題,您必須為您任務定義中的任務 CPU 和記憶體指定受支援的值。此cpu值可以在任務定義中以 CPU 單位或 vCPUs 表示。註冊任務定義時,它會轉換為指示 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,將 GB值 轉換為 MiB。例如 1 GB = 1024 MiB。

CPU 數值

記憶體數值

AWS Fargate 支援的作業系統

256 (.25 vCPU)

512 MiB、1 GB、2 GB

Linux

512 (.5 vCPU)

1 GB、2 GB、3 GB、4 GB

Linux

1024 (1 vCPU)

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

Linux、Windows

2048 (2 vCPU)

介於 4 GB 與 16 GB 之間,以 1 GB 為單位遞增

Linux、Windows

4096 (4 vCPU)

介於 8 GB 與 30 GB 之間,以 1 GB 為單位遞增

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 個 vCPUs 和 192 個 vCPUs 之間。

注意

Windows 容器會忽略任務層級的 CPU 和記憶體參數。