本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用主控台建立 Amazon ECS任務定義
您可以使用主控台或編輯JSON檔案來建立任務定義。
JSON 驗證
Amazon ECS主控台JSON編輯器會驗證JSON檔案中的下列項目:
-
檔案是有效的JSON檔案。
-
檔案不包含任何外部金鑰。
-
檔案包含
familyName
參數。 -
在 下至少有一個項目
containerDefinitions
。
AWS CloudFormation 堆疊
下列行為適用於 2023 年 1 月 12 日之前在新的 Amazon ECS主控台中建立的任務定義。
當您建立任務定義時,Amazon ECS主控台會自動建立 CloudFormation名稱開頭為 的堆疊ECS-Console-V2-TaskDefinition-
。如果您使用 AWS CLI 或 AWS SDK取消註冊任務定義,則必須手動刪除任務定義堆疊。如需詳細資訊,請參閱 AWS CloudFormation 使用者指南 中的刪除堆疊。
2023 年 1 月 12 日後建立的任務定義不會自動為其建立 CloudFormation 堆疊。
程序
- Amazon ECS console
-
-
在導覽窗格中,選擇 Task Definitions (任務定義)。
-
在建立新的任務定義功能表上,選擇建立新的任務定義。
-
在任務定義系列中,請為任務定義指定唯一名稱。
-
在啟動類型中,選擇應用程式環境。主控台預設值為 AWS Fargate(無伺服器)。Amazon ECS使用此值執行驗證,以確保任務定義參數對基礎設施類型有效。
-
針對作業系統/架構 ,選擇任務的作業系統和CPU架構。
若要在 64 位元ARM架構上執行任務,請選擇 Linux/ARM64。如需詳細資訊,請參閱執行時間平台。
若要在 Windows 容器上執行 AWS Fargate 任務,請選擇支援的 Windows 作業系統。如需詳細資訊,請參閱作業系統和架構。
-
針對任務大小 ,選擇要保留給任務的 CPU和 記憶體值。該CPU值指定為 vCPUs,記憶體指定為 GB。
對於託管在 Fargate 上的任務,下表顯示有效的 CPU和 記憶體組合。
CPU 值 記憶體數值 支援的作業系統 AWS Fargate 256 (.25 v CPU) 512 MiB、1 GB、2 GB Linux 512 (.5 v CPU) 1 GB、2 GB、3 GB、4 GB Linux 1024 (1 v CPU) 2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB Linux、Windows 2048 (2 v CPU) 介於 4 GB 與 16 GB 之間,以 1 GB 為單位遞增 Linux、Windows 4096 (4 v CPU) 介於 8 GB 與 30 GB 之間,以 1 GB 為單位遞增 Linux、Windows 8192 (8 v CPU) 注意
此選項需要 Linux 平台
1.4.0
或更新版本。介於 16 GB 與 60 GB 之間,以 4 GB 為單位遞增 Linux 16384 (16v CPU) 注意
此選項需要 Linux 平台
1.4.0
或更新版本。介於 32 GB 與 120 GB 之間,以 8 GB 為單位遞增 Linux 對於託管在 Amazon 上的任務EC2,支援的任務CPU值介於 128 個CPU單位 (0.125vCPUs) 和 10240 個CPU單位 (10 個vCPUs) 之間。若要以 GB 為單位指定記憶體值,請在該值後輸入 GB。例如,若要將記憶體值設定為 3GB請輸入 3GB
注意
Windows 容器的任務層級CPU和記憶體參數會遭到忽略。
-
在 Network mode (網路模式) 中選擇要使用的網路模式。預設網路模式為 awsvpc 模式。如需詳細資訊,請參閱 Amazon ECS任務聯網。
如果您選擇橋接 ,請在連接埠映射 下,針對主機連接埠 輸入容器執行個體上的連接埠號碼,以保留容器。
-
(選用) 展開任務角色區段,為任務設定 AWS Identity and Access Management (IAM) 角色:
-
針對任務角色 ,選擇要指派給任務IAM的角色。任務IAM角色為任務中的容器提供呼叫 AWS API操作的許可。
-
在任務執行角色中,選擇角色。
如需有關何時使用任務執行角色的資訊,請參閱 Amazon ECS任務執行IAM角色。如果您不需要該角色,請選擇無。
-
-
請為您任務定義中要定義的每個容器完成以下步驟。
-
在 Name (名稱) 中,輸入容器的名稱。
-
針對映像 URI,輸入要用來啟動容器的映像。Amazon ECR Public Gallery 登錄檔中的影像只能使用 Amazon ECR Public 登錄檔名稱來指定。例如,如果指定
public.ecr.aws/ecs/amazon-ecs-agent:latest
,則會使用 Amazon ECR Public Gallery 上託管的 Amazon Linux 容器。對於所有其他儲存庫,請使用repository-url/image:tag
或repository-url/image@digest
格式來指定儲存庫。 -
如果您的映像位於 Amazon 外部的私有登錄檔中ECR,請在私有登錄檔 下,開啟私有登錄檔身分驗證 。然後,在 Secrets Manager ARN或名稱 中,輸入秘密的 Amazon Resource Name (ARN)。
-
對於必要容器 ,如果您的任務定義已定義兩個或多個容器,您可以指定容器是否應視為必要容器。當容器標記為基本 時,如果容器停止,則任務會停止。每個任務定義必須至少包含一個基本容器。
-
連接埠映射允許容器存取主機上的連接埠,以傳送或接收流量。在 Port mappings (連接埠映射) 下執行以下其中一項動作:
-
若您使用 awsvpc 網路模式,請在 Container port (容器連接埠) 和 Protocol (通訊協定) 中,選擇要用於容器的連接埠映射。
-
若您使用 bridge 網路模式,請在 Container port (容器連接埠) 和 Protocol (通訊協定) 中,選擇要用於容器的連接埠映射。
選擇 Add more port mappings (新增更多連接埠映射),以指定其他容器連接埠映射。
-
-
若要授予容器對其根檔案系統的唯讀存取權限,請在唯讀根檔案系統中選取唯讀。
-
(選用) 若要定義與任務層級值不同的容器層級 CPU、 GPU和記憶體限制,請在資源配置限制 下執行下列動作:
-
針對 CPU,輸入 Amazon ECS容器代理程式保留給容器的CPU單位數量。
-
針對 GPU,輸入容器執行個體的GPU單位數量。
GPU 支援 的 Amazon EC2執行個體每個 都有 1 個GPU單位GPU。如需詳細資訊,請參閱GPU 工作負載的 Amazon ECS任務定義。
-
針對記憶體硬限制 ,輸入要呈現至容器的記憶體量,以 GB 為單位。如果容器嘗試超過硬限制,容器將會停止。
-
所以此 Docker 20.10.0 或更新版本的常駐程式會為容器保留至少 6 MB MiB) 的記憶體,因此請勿為容器指定少於 6 MiB 的記憶體。
所以此 Docker 19.03.13-ce 或更早的常駐程式會為容器保留至少 4 MiB 的記憶體,因此請勿為容器指定少於 4 MiB 的記憶體。
-
在記憶體軟限制中,輸入為容器保留的記憶體軟限制 (GB)。
當系統記憶體處於爭用狀態時,Docker 會嘗試將容器記憶體保持在此軟限制。如果您未指定任務層級的記憶體,您必須為記憶體硬限制和記憶體軟限制之一 (或兩者) 指定非零整數。如果同時指定兩者,記憶體硬限制必須大於記憶體軟限制。
Windows 容器不支援此功能。
-
-
(選用) 展開環境變數區段,以指定要注入到容器中的環境變數。您可以使用鍵值對或大量指定託管在 Amazon S3 儲存貯體中的環境變數檔案來個別指定環境變數。如需有關如何格式化環境變數檔案的資訊,請參閱 將個別環境變數傳遞至 Amazon ECS容器。
當您為秘密儲存指定環境變數時,請在金鑰 中輸入秘密名稱。然後ValueFrom,針對 輸入 Systems Manager 參數存放區秘密或 Secrets Manager 秘密ARN的完整內容
-
(選用) 選擇使用日誌收集選項來指定日誌組態。每個可用的日誌驅動程序式都有要指定的日誌驅動程序選項。預設選項會將容器日誌傳送至 Amazon CloudWatch Logs。其他日誌驅動程式選項是透過使用 來設定 AWS FireLens。 如需詳細資訊,請參閱 將 Amazon ECS日誌傳送至 AWS 服務或 AWS Partner。
下方更詳細地描述了每個容器日誌目的地。
-
Amazon CloudWatch – 設定任務將容器日誌傳送至 CloudWatch 日誌。會提供預設日誌驅動程式選項,這些選項會代表您建立 CloudWatch 日誌群組。若要指定不同的日誌群組名稱,請變更驅動程式選項值。
-
匯出日誌至 Splunk – 設定任務,將容器日誌傳送至 Splunk 將日誌傳送至遠端服務的驅動程式。您必須將 輸入URL至您的 Splunk Web 服務。所以此 Splunk 字符被指定為秘密選項,因為它可以被視為敏感資料。
-
將日誌匯出至 Amazon Data Firehose – 設定任務以傳送容器日誌至 Firehose。會提供預設日誌驅動程式選項,將日誌傳送至 Firehose 交付串流。若要指定不同的交付串流名稱,請變更驅動程式選項值。
-
匯出日誌至 Amazon Kinesis Data Streams – 設定任務,將容器日誌傳送至 Kinesis Data Streams。提供預設日誌驅動程式選項,可將日誌傳送至 Kinesis Data Streams 串流。若要指定不同的串流名稱,請變更驅動程式選項值。
-
匯出日誌至 Amazon OpenSearch Service – 設定任務,將容器日誌傳送至 OpenSearch Service 網域。務必提供日誌驅動程式選項。
-
匯出日誌至 Amazon S3 – 設定任務,將容器日誌傳送至 Amazon S3 儲存貯體。會提供預設日誌驅動程式選項,但您必須指定有效的 Amazon S3 儲存貯體名稱。
-
-
(選用) 設定其他容器參數。
若要設定此選項 執行此作業 重新啟動政策
這些選項會定義重新啟動政策,以在容器結束時重新啟動容器。
展開重新啟動政策 ,然後設定下列項目: -
若要為容器啟用重新啟動政策,請開啟啟用重新啟動政策 。
-
對於忽略的結束代碼 ,請指定以逗號分隔的整數容器結束代碼清單。如果容器以任何指定的結束碼結束,Amazon ECS不會嘗試重新啟動容器。如果未指定任何 ,Amazon ECS將不會忽略任何結束碼。
-
對於嘗試重設期間 ,請指定整數時段,以秒為單位,容器必須先執行 ,才能在結束時嘗試重新啟動。Amazon ECS 只能嘗試在每個嘗試重設期間秒重新啟動容器一次。如果未指定任何項目,容器必須執行 300 秒,才能嘗試重新啟動。
HealthCheck
這些是判斷容器是否運作狀態良好的命令。如需詳細資訊,請參閱使用容器運作狀態檢查來判斷 Amazon ECS任務運作狀態。
展開 HealthCheck,然後設定下列項目: -
在 Command (命令) 欄位中,輸入以逗號分隔的命令清單。您可以用
CMD
作為此命令的開頭,如此能直接執行命令引數;或以CMD-SHELL
為開頭,藉以使用容器預設的 Shell 來執行命令。如果均尚未指定,則使用CMD
。 -
在 Interval (間隔) 欄位中,輸入每次運作狀態檢查之間的秒數。有效值介於 5 到 30。
-
在 Timeout (逾時) 欄位中,輸入在判定為失敗之前,等待運作狀態檢查成功執行的時間 (以秒為單位)。有效值介於 2 到 60。
-
在 Start period (開始期間) 欄位中,輸入在運作狀態檢查命令執行之前,等待容器引導的時間 (以秒為單位)。有效值介於 0 到 300。
-
在 Retries (重試次數) 欄位中,輸入失敗時重試運作狀態檢查命令的次數。有效值介於 1 到 10 之間。
啟動相依性排序 此選項定義容器啟動和關閉的相依性。容器可包含多個相依性。
展開啟動相依性順序,然後設定下列項目: -
選擇新增容器相依性。
-
在容器中,選擇容器。
-
在條件中,選擇啟動相依性條件。
容器逾時 這些選項決定何時啟動和停止容器。
展開容器逾時,然後設定以下項目: -
若要設定在放棄解決容器相依性之前等待的時間,請針對啟動逾時 輸入秒數。
-
若要設定容器未自行正常退出時,容器停止之前的等待時間,請在停止逾時 中輸入秒數。
容器網路設定 這些選項決定是否要在容器內使用聯網功能。
展開容器網路設定,然後設定以下項目: -
若要停用容器聯網功能,請選取關閉聯網。
-
若要設定呈現至容器的DNS伺服器 IP 地址,請在DNS伺服器 中,在個別行中輸入每個伺服器的 IP 地址。
-
若要設定DNS網域以搜尋呈現至容器的non-fully-qualified 主機名稱,請在DNS搜尋網域 中輸入個別行上的每個網域。
模式是
^[a-zA-Z0-9-.]{0,253}[a-zA-Z0-9]$
。 -
若要設定容器主機名稱,請在主機名稱中輸入容器主機名稱。
-
若要新增附加至容器上
/etc/hosts
檔案的主機名稱和 IP 地址映射,請選擇新增額外主機,然後在主機名稱和 IP 地址中輸入主機名稱和 IP 地址。
Docker 組態 這些會覆寫 中的值 Dockerfile.
展開 Docker 組態 ,然後設定下列項目:
-
在命令中,輸入容器的可執行命令。
此參數在 的建立容器
區段 Cmd
中映射至 。Docker 遠端 API和COMMAND
選項。docker run
此參數會覆寫 中的CMD
指令 Dockerfile. -
對於進入點 ,輸入 Docker ENTRYPOINT 會傳遞至容器。
此參數在 的建立容器
區段 Entrypoint
中映射至 。Docker 遠端 API和--entrypoint
選項。docker run
此參數會覆寫 中的ENTRYPOINT
指令 Dockerfile. -
在工作目錄中,輸入容器將執行所提供的任何進入點和命令指示的目錄。
此參數在 的建立容器
區段 WorkingDir
中映射至 。Docker 遠端 API和--workdir
選項。docker run
此參數會覆寫 中的WORKDIR
指令 Dockerfile.
資源限制 (Ulimits) 這些值會覆寫作業系統的預設資源配額設定。
此參數在 Docker Remote API
的建立容器 區段 Ulimits
中映射至 ,以及--ulimit
docker run. 展開資源限制 (ulimits),然後選擇新增 ulimit。 針對限制名稱 ,選擇限制。然後,在軟限制和硬限制中輸入值。
若要新增其他 ulimits,選擇新增 ulimit.
Docker 標籤 此選項會將中繼資料新增至您的容器。
此參數在 Docker Remote API
的建立容器 區段 Labels
中映射至 ,以及--label
docker run. 展開 Docker 標籤 ,選擇新增索引鍵值對 ,然後輸入索引鍵和值 。
若要新增其他 Docker 標籤,選擇新增索引鍵值對 。
-
-
(選用) 選擇 Add more containers (新增更多容器),以新增其他容器至任務定義。
-
-
(選用) 儲存區段用於擴充 Fargate 上託管任務的暫時儲存量。您也可以使用本節來新增任務的資料磁碟區組態。
-
將可用的暫時性儲存體擴展到預設值 之外 20 gibibytes (GiB) 針對 Fargate 任務,針對金額 輸入值,上限為 200 GiB.
-
-
(選用) 若要為任務定義新增資料磁碟區組態,請選擇新增磁碟區 ,然後遵循下列步驟。
-
在 Volume name (磁碟區名稱) 中,輸入資料磁碟區的名稱。在建立容器掛載點時會使用資料磁碟區名稱。
-
針對磁碟區組態 ,選取您要在建立任務定義時或在部署期間設定磁碟區。
注意
建立任務定義時可設定的磁碟區包括繫結掛載、Docker、Amazon EFS和 Amazon FSx for Windows File Server。可在執行任務時或在建立或更新服務時設定的磁碟區包含 Amazon EBS。
-
針對磁碟區類型 ,選取與您選取的組態類型相容的磁碟區類型,然後設定磁碟區類型。
磁碟區類型 步驟 繫結掛載
-
選擇 Add mount point (新增掛載點),然後設定下列項目:
-
對於 Container (容器),選擇掛載點的容器。
-
在來源磁碟區中,選擇要掛載到容器的資料磁碟區。
-
在 Container path (容器路徑) 中,輸入容器的路徑,以掛載磁碟區。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
若要新增其他掛載點,請 Add mount point (新增掛載點)。
EFS -
針對檔案系統 ID ,選擇 Amazon EFS 檔案系統 ID。
-
(選用) 針對根目錄 ,在 Amazon EFS 檔案系統中輸入要掛載為主機內根目錄的目錄。如果省略此參數,則會使用 Amazon EFS磁碟區的根。
如果您打算使用EFS存取點,請將此欄位保留空白。
-
(選用) 在 Access point (存取點) 欄位中,選擇要使用的存取點 ID。
-
(選用) 若要加密 Amazon EFS 檔案系統和 Amazon ECS 主機之間的資料,或在掛載磁碟區時使用任務執行角色,請選擇進階組態 ,然後設定下列項目:
-
若要加密 Amazon EFS 檔案系統和 Amazon ECS 主機之間的資料,請選取傳輸加密 ,然後在連接埠 輸入在 Amazon ECS 主機和 Amazon EFS 伺服器之間傳送加密資料時要使用的連接埠。如果您未指定傳輸加密連接埠,則會使用 Amazon EFS 掛載協助程式使用的連接埠選取策略。如需詳細資訊,請參閱 Amazon Elastic File System 使用者指南中的EFS掛載協助程式。
-
若要在掛載 Amazon EFS 檔案系統時使用任務定義中定義的 Amazon ECS任務IAM角色,請選取IAM授權 。
-
-
選擇 Add mount point (新增掛載點),然後設定下列項目:
-
對於 Container (容器),選擇掛載點的容器。
-
在來源磁碟區中,選擇要掛載到容器的資料磁碟區。
-
在 Container path (容器路徑) 中,輸入容器的路徑,以掛載磁碟區。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
若要新增其他掛載點,請 Add mount point (新增掛載點)。
Docker
-
對於驅動程式 ,輸入 Docker 磁碟區組態。Windows 容器僅支援使用本機驅動程式。若要使用綁定掛載,請指定主機。
-
在 Scope (範圍) 欄位中,選擇磁碟區生命週期。
-
若要在任務開始與停止時讓生命週期持續,請選擇 Task (任務)。
-
若要讓磁碟區在任務停止後可持續執行,請選擇 Shared (共享)。
-
-
選擇 Add mount point (新增掛載點),然後設定下列項目:
-
對於 Container (容器),選擇掛載點的容器。
-
在來源磁碟區中,選擇要掛載到容器的資料磁碟區。
-
在 Container path (容器路徑) 中,輸入容器的路徑,以掛載磁碟區。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
若要新增其他掛載點,請 Add mount point (新增掛載點)。
FSx 適用於 Windows File Server -
針對檔案系統 ID ,選擇適用於 Windows File Server 檔案系統 ID FSx的 。
-
對於根目錄 ,輸入目錄,在FSx適用於 Windows File Server 檔案系統的 中輸入要掛載為主機內根目錄的目錄。
-
在憑證參數中,請選擇憑證的儲存方式。
-
若要使用 AWS Secrets Manager,請輸入 Secrets Manager 秘密的 Amazon Resource Name (ARN)。
-
若要使用 AWS Systems Manager,請輸入 Systems Manager 參數的 Amazon Resource Name (ARN)。
-
-
對於網域 ,輸入由 AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) 目錄或自我託管 EC2 Active Directory 託管的完整網域名稱。
-
選擇 Add mount point (新增掛載點),然後設定下列項目:
-
對於 Container (容器),選擇掛載點的容器。
-
在來源磁碟區中,選擇要掛載到容器的資料磁碟區。
-
在 Container path (容器路徑) 中,輸入容器的路徑,以掛載磁碟區。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
若要新增其他掛載點,請 Add mount point (新增掛載點)。
Amazon EBS
-
選擇 Add mount point (新增掛載點),然後設定下列項目:
-
對於 Container (容器),選擇掛載點的容器。
-
在來源磁碟區中,選擇要掛載到容器的資料磁碟區。
-
在 Container path (容器路徑) 中,輸入容器的路徑,以掛載磁碟區。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
若要新增其他掛載點,請 Add mount point (新增掛載點)。
-
-
若要從另一個容器新增磁碟區,請選擇新增磁碟區來源,然後設定下列項目:
-
在容器中,選擇容器。
-
在來源中,選擇包含您要掛載的磁碟區的容器。
-
在唯讀中,選取容器是否具有對磁碟區的唯讀存取權。
-
-
(選用) 使用 設定應用程式追蹤和指標收集設定 AWS Distro for OpenTelemetry 整合,展開監控 ,然後選取使用指標集合,以收集任務指標並將其傳送至 Amazon CloudWatch 或 Amazon Managed Service for Prometheus。選取此選項時,Amazon 會ECS建立 AWS Distro for OpenTelemetry 預先設定為傳送應用程式指標的容器 Sidecar。如需詳細資訊,請參閱使用ECS應用程式指標關聯 Amazon 應用程式效能。
-
選取 Amazon CloudWatch 時,您的自訂應用程式指標會 CloudWatch 作為自訂指標路由至 。如需詳細資訊,請參閱將應用程式指標匯出至 Amazon CloudWatch。
重要
匯出應用程式指標至 Amazon 時 CloudWatch,您的任務定義需要具有必要許可的任務IAM角色。如需詳細資訊,請參閱AWS Distro 與 Amazon OpenTelemetry 整合所需的IAM許可 CloudWatch。
-
當您選取 Amazon Managed Service for Prometheus (Prometheus 程式庫儀器) 時,您的任務層級 CPU、記憶體、網路和儲存指標和自訂應用程式指標會路由至 Amazon Managed Service for Prometheus。針對工作區遠端寫入端點 ,輸入您 URL的遠端寫入端點 Prometheus 工作區。對於擴展目標 ,輸入主機並連接埠 AWS Distro for OpenTelemetry 收集器可用來抓取指標資料。如需詳細資訊,請參閱將應用程式指標匯出至 Amazon Managed Service for Prometheus。
重要
匯出應用程式指標至 Amazon Managed Service for Prometheus 時,您的任務定義需要具有必要許可的任務IAM角色。如需詳細資訊,請參閱AWS Distro 與 Amazon Managed Service for Prometheus OpenTelemetry 整合所需的IAM許可。
-
當您選取 Amazon Managed Service for Prometheus (OpenTelemetry 儀器) 時,您的任務層級 CPU、記憶體、網路和儲存指標和自訂應用程式指標會路由至 Amazon Managed Service for Prometheus。針對工作區遠端寫入端點 ,輸入您 URL的遠端寫入端點 Prometheus 工作區。如需詳細資訊,請參閱將應用程式指標匯出至 Amazon Managed Service for Prometheus。
重要
匯出應用程式指標至 Amazon Managed Service for Prometheus 時,您的任務定義需要具有必要許可的任務IAM角色。如需詳細資訊,請參閱AWS Distro 與 Amazon Managed Service for Prometheus OpenTelemetry 整合所需的IAM許可。
-
-
(選用) 展開 Tags (標籤) 區段,將標籤作為鍵值對新增至任務定義中。
-
[新增標籤] 選擇新增標籤,然後執行下列操作︰
-
在索引鍵中,輸入索引鍵名稱。
-
在值中,進入索引鍵值。
-
-
[移除標籤] 在標籤旁邊,選擇 移除標籤。
-
-
選擇建立來註冊任務定義。
- Amazon ECS console JSON editor
-
-
在導覽窗格中,選擇 Task Definitions (任務定義)。
-
在建立新任務定義功能表上,選擇使用 建立新任務定義JSON。
-
在JSON編輯器方塊中,編輯您的JSON檔案、
必須JSON通過 中指定的驗證檢查JSON 驗證。
-
選擇 Create (建立)。