❗ ❗ ❗ 請注意,該項目不再積極維護。在 AWS 上部署新的 Fargate 的更好選擇是 AWS Copilot CLI,它功能更強大,並且由 AWS 積極維護。 ❗❗❗
預設情況下,fargate 使用us-east-1 。 CLI 接受 --region 參數並將遵循AWS_REGION和AWS_DEFAULT_REGION環境設定。請注意,指定所有必需服務均不可用的區域將傳回錯誤。
請參閱區域表,以了解哪些區域提供哪些服務的詳細資訊。
Fargate 使用 AWS SDK for Go 構建,它在以下位置尋找憑證:
環境變數
共享憑證文件
EC2 執行個體設定檔
有關更多信息,請參閱 AWS SDK for Go 文件中的指定憑證。
旗幟 | 預設 | 描述 |
---|---|---|
- 簇 | 法爾蓋特 | ECS叢集名稱 |
- 地區 | 美國東部1 | AWS 區域 |
--無顏色 | 錯誤的 | 禁用顏色輸出 |
--詳細 | 錯誤的 | 詳細輸出 |
任務是容器的一次性執行。任務執行個體將一直執行,直到您透過 AWS API、AWS 管理主控台或fargate task stop
手動停止它們,或直到它們因任何原因中斷。
fargate task list
列出正在運行的任務組
fargate task run <task-group-name> [--num <count>] [--cpu <cpu-units>] [--memory <MiB>]
[--image <docker-image>] [--env <key=value>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
運行新任務
您必須指定任務群組名稱,以便與後續命令中的任務進行交互,以查看日誌、停止和檢查任務。任務群組名稱不必是唯一的-可以使用相同任務群組啟動任務實例的多個配置。
透過在 --num 標誌中指定數字可以運行任務的多個實例。如果未指定數量,則將執行單一任務實例。
可以使用 --cpu 和 --memory 標誌分別將 CPU 和記憶體設定指定為 CPU 單位和兆位元組。每 1024 個 CPU 單元相當於一個 vCPU。 AWS Fargate 僅支援某些 CPU 和記憶體配置組合:
CPU(CPU單元) | 內存 (MiB) |
---|---|
256 | 512、1024 或 2048 |
第512章 | 1024 到 4096(以 1GiB 為增量) |
1024 | 2048 到 8192(以 1GiB 為增量) |
2048 | 4096 到 16384(以 1GiB 為增量) |
4096 | 8192 到 30720(以 1GiB 為增量) |
如果未指定,fargate 將以 0.25 vCPU(256 個 CPU 單元)和 0.5GB (512 MiB) 記憶體啟動最小大小的任務。
可以透過 --image 標誌選擇性地指定任務中使用的 Docker 容器映像。如果未指定,fargate 將從目前工作目錄建立新的 Docker 容器映像,並將其推送到以任務群組命名的儲存庫中的 Amazon ECR。如果目前工作目錄是 git 儲存庫,則容器映像將使用 HEAD 提交的短引用進行標記。如果不是,則會使用 YYYYMMDDHHMMSS 格式的時間戳記。
環境變數可以透過 --env 標誌指定。多次指定 --env 和 key=value 參數以新增多個變數。
可以選擇透過傳遞帶有安全性群組 ID 的 --security-group-id 標誌來為任務指定安全性群組。若要新增多個安全性群組,請多次傳遞 --security-group-id 和安全性群組 ID。如果省略 --security-group-id,則將向任務套用寬鬆的安全群組。
預設情況下,任務將在預設 VPC 中創建,並附加到每個可用區的預設 VPC 子網路。您可以透過傳遞帶有子網路 ID 的 --subnet-id 標誌來指定明確子網路來覆寫此設定。
可以透過提供完整的 IAM 角色 ARN 或 IAM 角色的名稱,透過 --task-role 標誌選擇性地指定任務角色。任務將能夠承擔這個角色。
fargate task info <task-group-name> [--task <task-id>]
檢查任務
顯示任務群組中每個正在執行的任務或使用 --task 標誌指定的特定任務的擴充資訊。資訊包括任務組中的任務之間可能不同的環境變數。使用任務 ID 多次檢查任務群組特定 --task 中的多個特定任務。
fargate task ps <task-group-name>
列出正在運行的任務
fargate task logs <task-group-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
顯示任務日誌
使用 --follow 選項即時傳回任務日誌或尾部日誌的特定片段。日誌以其日誌流名稱為前綴,格式為「fargate/<task-group-name>/<task-id>」。
Follow 將繼續運行並傳回日誌,直到被 Control-C 中斷。如果傳遞了--follow,則無法指定--end。
透過 --task 標誌傳遞任務 ID,可以傳回任務群組內特定任務的日誌。多次傳遞 --task 和任務 ID 以便從多個特定任務檢索日誌。
可以透過傳遞 --start 和 --end 選項以及時間表達式來請求特定的日誌視窗。時間表達式可以是持續時間或時間戳記:
您可以透過 --filter 標誌傳遞過濾器表達式來過濾特定術語的日誌。傳遞單一術語以搜尋該術語,傳遞多個術語以搜尋包含所有術語的日誌訊息。有關更多詳細信息,請參閱 CloudWatch Logs 文件。
fargate task stop <task-group-name> [--task <task-id>]
停止任務
如果僅使用任務組名稱運行,則停止任務組內的所有任務;如果透過 --task 標誌傳遞一個或多個任務,則停止單一任務。多次指定 --task 和任務 ID 參數可停止多個特定任務。
服務管理在 AWS Fargate 上執行的長期容器執行個體。如果您的容器因任何原因退出,服務排程器將重新啟動您的容器並確保您的服務運作所需數量的任務。服務可以與負載平衡器搭配使用,以在服務中的任務之間分配流量。
fargate service list
列出服務
fargate service create <service name> [--cpu <cpu units>] [--memory <MiB>] [--port <port-expression>]
[--lb <load-balancer-name>] [--rule <rule-expression>]
[--image <docker-image>] [--env <key=value>] [--num <count>]
[--task-role <task-role>] [--subnet-id <subnet-id>]
[--security-group-id <security-group-id>]
建立新服務
可以使用 --cpu 和 --memory 標誌分別將 CPU 和記憶體設定指定為 CPU 單位和兆位元組。每 1024 個 CPU 單元相當於一個 vCPU。 AWS Fargate 僅支援某些 CPU 和記憶體配置組合:
CPU(CPU單元) | 內存 (MiB) |
---|---|
256 | 512、1024 或 2048 |
第512章 | 1024 到 4096(以 1GiB 為增量) |
1024 | 2048 到 8192(以 1GiB 為增量) |
2048 | 4096 到 16384(以 1GiB 為增量) |
4096 | 8192 到 30720(以 1GiB 為增量) |
如果未指定,fargate 將以 0.25 vCPU(256 個 CPU 單元)和 0.5GB (512 MiB) 記憶體啟動最小大小的任務。
可以透過 --image 標誌選擇性地指定要在服務中使用的 Docker 容器映像。如果未指定,fargate 將從目前工作目錄建立新的 Docker 容器映像,並將其推送到以任務群組命名的儲存庫中的 Amazon ECR。如果目前工作目錄是 git 儲存庫,則容器映像將使用 HEAD 提交的短引用進行標記。如果不是,則會使用 YYYYMMDDHHMMSS 格式的時間戳記。
若要將服務與負載平衡器一起使用,必須在建立服務時指定連接埠。透過傳遞 --port 標誌和協定:連接埠號碼的連接埠表達式來指定連接埠。例如,如果服務偵聽連接埠 80 並使用 HTTP,請指定 HTTP:80。有效協定包括 HTTP、HTTPS 和 TCP。您只能指定一個連接埠。
可以選擇將服務配置為使用負載平衡器。若要將負載平衡器放在服務前面,請傳遞帶有負載平衡器名稱的 --lb 標誌。如果指定負載平衡器,也必須透過 --port 標誌指定負載平衡器應將請求轉送到的連接埠。 (可選)可以將應用程式負載平衡器配置為根據規則將 HTTP/HTTPS 流量路由到服務。規則是透過指定 --rule 標誌以及規則表達式來傳遞一個或多個規則來配置的。規則表達式的格式為 TYPE=VALUE。類型可以是 PATH 或 HOST。 PATH 與請求的 PATH 匹配,HOST 與 HTTP 請求中請求的主機名稱匹配。 PATH 和 HOST 類型最多可以包含三個通配符:* 用於匹配多個字符,?匹配單一字元。如果省略規則,則服務將是負載平衡器的預設操作。
環境變數可以透過 --env 標誌指定。多次指定 --env 和 key=value 參數以新增多個變數。
透過傳遞帶有數字的 --num 標誌來指定服務應維護的所需任務數。如果省略此標誌,fargate 將配置所需任務數為 1 的服務。
可以選擇透過傳遞 --security-group-id 標誌和安全性群組 ID 來為服務指定安全性群組。若要新增多個安全性群組,請多次傳遞 --security-group-id 和安全性群組 ID。如果省略 --security-group-id,則將向服務套用寬鬆的安全群組。
預設情況下,服務將在預設 VPC 中創建,並附加到每個可用區的預設 VPC 子網路。您可以透過傳遞帶有子網路 ID 的 --subnet-id 標誌來指定明確子網路來覆寫此設定。
可以透過提供完整的 IAM 角色 ARN 或 IAM 角色的名稱,透過 --task-role 標誌選擇性地指定任務角色。該服務運行的任務將能夠承擔此角色。
fargate service deploy <service-name> [--image <docker-image>]
將新鏡像部署到服務
可以透過 --image 標誌選擇性地指定要在服務中使用的 Docker 容器映像。如果未指定,fargate 將從目前工作目錄建立新的 Docker 容器映像,並將其推送到以任務群組命名的儲存庫中的 Amazon ECR。如果目前工作目錄是 git 儲存庫,則容器映像將使用 HEAD 提交的短引用進行標記。如果不是,則會使用 YYYYMMDDHHMMSS 格式的時間戳記。
fargate service info <service-name>
檢驗服務
顯示服務的擴充訊息,包括負載平衡器配置、活動部署和環境變數。
部署顯示正在執行的服務的活動版本。如果服務因部署或更新配置(例如 CPU、記憶體或環境變數)而發生轉換,則會顯示多個部署。
fargate service logs <service-name> [--follow] [--start <time-expression>] [--end <time-expression>]
[--filter <filter-expression>] [--task <task-id>]
顯示服務中任務的日誌
使用 --follow 選項即時傳回服務日誌的特定片段或尾部日誌。日誌以其日誌流名稱為前綴,格式為「fargate/<service-name>/<task-id>」。
Follow 將繼續運行並傳回日誌,直到被 Control-C 中斷。如果傳遞了--follow,則無法指定--end。
透過 --task 標誌傳遞任務 ID,可以傳回服務中特定任務的日誌。多次傳遞 --task 和任務 ID 以便從多個特定任務檢索日誌。
可以透過傳遞 --start 和 --end 選項以及時間表達式來請求特定的日誌視窗。時間表達式可以是持續時間或時間戳記:
您可以透過 --filter 標誌傳遞過濾器表達式來過濾特定術語的日誌。傳遞單一術語以搜尋該術語,傳遞多個術語以搜尋包含所有術語的日誌訊息。有關更多詳細信息,請參閱 CloudWatch Logs 文件。
fargate service ps <service-name>
列出服務正在運行的任務
fargate service scale <service-name> <scale-expression>
擴展服務中的任務數量
透過給定的比例表達式來變更要在服務中執行的所需任務的數量。比例表達式可以是絕對數字,也可以是符號(例如 +5 或 -2)指定的增量。
fargate service env set <service-name> --env <key=value>
設定環境變數
必須透過 --env 標誌至少指定一個環境變數。多次指定 --env 和 key=value 參數以新增多個變數。
fargate service env unset <service-name> --key <key-name>
取消設定環境變數
取消設定透過 --key 標誌指定的環境變數。多次指定 --key 和鍵名以取消設定多個變數。
fargate service env list <service-name>
顯示環境變數
fargate service update <service-name> [--cpu <cpu-units>] [--memory <MiB>]
更新服務配置
CPU 和記憶體設定分別使用 --cpu 和 --memory 標誌指定為 CPU 單位和兆位元組。每 1024 個 CPU 單元相當於一個 vCPU。 AWS Fargate 僅支援某些 CPU 和記憶體配置組合:
CPU(CPU單元) | 內存 (MiB) |
---|---|
256 | 512、1024 或 2048 |
第512章 | 1024 到 4096(以 1GiB 為增量) |
1024 | 2048 到 8192(以 1GiB 為增量) |
2048 | 4096 到 16384(以 1GiB 為增量) |
4096 | 8192 到 30720(以 1GiB 為增量) |
必須至少指定 --cpu 或 --memory 之一。
fargate service restart <service-name>
重啟服務
為服務建立一組新任務並停止先前的任務。例如,如果您的服務需要重新載入從外部來源快取的數據,這非常有用。
fargate service destroy <service-name>
銷毀服務
為了銷毀一個服務,必須先將其擴展到 0 個正在運行的任務。
負載平衡器在 HTTP/HTTPS 和 TCP 應用程式的服務內的任務之間分配傳入流量。 HTTP/HTTPS 負載平衡器可以根據您在建立新服務時指定的規則路由到多個服務。
fargate lb list
列出負載平衡器
fargate lb create <load-balancer-name> --port <port-expression> [--certificate <certificate-name>]
[--subnet-id <subnet-id>] [--security-group-id <security-group-id>]
[--scheme <lb-scheme>]
建立負載平衡器
必須透過 --port 標誌和協定:連接埠號碼的連接埠表達式至少為負載平衡器偵聽器指定一個連接埠。例如,如果您希望 HTTP 負載平衡器偵聽連接埠 80,則可以指定 HTTP:80。有效協定包括 HTTP、HTTPS 和 TCP。您可以透過多次傳遞 --port 標誌和連接埠表達式來指定多個偵聽器。您不能在單一負載平衡器上混合 TCP 連接埠與 HTTP/HTTPS 連接埠。
您可以選擇透過傳遞 --certificate 標誌和憑證名稱來包含憑證以保護 HTTPS 連接埠。可以多次指定此選項,以將其他憑證新增至單一負載平衡器,該負載平衡器使用服務名稱識別 (SNI) 為請求選擇適當的憑證。
預設情況下,負載平衡器將在預設 VPC 中創建,並附加到每個可用區的預設 VPC 子網路。您可以透過傳遞帶有子網路 ID 的 --subnet-id 標誌來指定明確子網路來覆寫此設定。 HTTP/HTTPS 負載平衡器需要至少連接兩個子網,而 TCP 負載平衡器只需要一個。您只能從每個可用區域指定一個子網路。
可以選擇透過傳遞 --security-group-id 標誌和安全性群組 ID 來為 HTTP/HTTPS 負載平衡器指定安全性群組。若要新增多個安全性群組,請多次傳遞 --security-group-id 和安全性群組 ID。如果省略 --security-group-id,則將向負載平衡器套用寬鬆的安全群組。
您也可以透過 --scheme 標誌選擇負載平衡器的方案類型。預設情況下,負載平衡器面向網際網路。
fargate lb destroy <load-balancer-name>
銷毀負載平衡器
fargate lb alias <load-balancer-name> <hostname>
建立負載平衡器別名記錄
為 Amazon Route 53 內和同一 AWS 帳戶內託管的網域建立負載平衡器的別名記錄。如果您使用其他 DNS 提供者或在不同帳戶中託管您的網域,則需要手動建立此記錄。
fargate lb info <load-balancer-name>
檢查負載平衡器
傳回有關負載平衡器的擴充訊息,包括負載平衡器使用的偵聽器、規則和憑證的清單。
證書是由 AWS Certificate Manager 頒發或匯入到 AWS Certificate Manager 中的 TLS 證書,用於保護負載平衡器和最終使用者之間的流量。 ACM 免費提供 TLS 憑證以在 AWS 資源中使用。
fargate certificate list
列出證書
fargate certificate import <domain-name> --certificate <filename> --key <filename> [--chain <filename>]
導入證書
從憑證檔案、私鑰檔案和可選的中間憑證鏈檔案上傳憑證。文件必須是 PEM 編碼的,且私鑰不得加密或受密碼保護。有關更多詳細信息,請參閱 AWS Certificate Manager 文件。
fargate certificate request <domain-name> [--alias <domain-name>]
索取證書
憑證可以是完全限定的網域名稱(例如www.example.com)或通配符網域(例如*.example.com)。您可以透過 --alias 標誌指定其他網域來為憑證新增別名。若要新增多個別名,請多次傳遞 --alias。預設情況下,AWS Certificate Manager 每個憑證的網域限制為 10 個,但 AWS 支援人員可以提高此限制。
fargate certificate info <domain-name>
檢驗證書
顯示證書的擴充資訊。包括對憑證的每次驗證,該憑證顯示必須建立的 DNS 記錄以驗證網域所有權。
fargate certificate validate <domain-name>
驗證證書所有權
Fargate 將自動建立 DNS 驗證記錄,以驗證 Amazon Route 53 中託管的任何網域的所有權。其網域託管在其他 DNS 託管提供者或其他 DNS 帳戶中且無法自動驗證的任何記錄都將具有必要的記錄輸出。這些記錄也可以在fargate certificate info <domain-name>
中找到。
建立 DNS 記錄後,AWS Certificate Manager 可能需要幾個小時才能完成驗證並頒發憑證。
fargate certificate destroy <domain-name>
銷毀憑證
為了銷毀證書,任何負載平衡器或任何其他 AWS 資源都不得使用該證書。