本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 ECS Exec 執行命令
您可以使用 Amazon ECS Exec 收集與容器相關的診斷資訊,並對整個容器生命週期中遇到的錯誤進行故障診斷。
先決條件
開始使用 ECS Exec 之前,請確定您已完成下列動作:
-
檢閱考量事項。如需詳細資訊,請參閱考量事項
-
為您的任務和服務設定 ECS Exec。如需詳細資訊,請參閱設定 ECS Exec
-
安裝和設定 AWS CLI。如需詳細資訊,請參閱開始使用 AWS CLI。
-
安裝 的 Session Manager 外掛程式 AWS CLI。如需詳細資訊,請參閱為 AWS CLI安裝工作階段管理工具外掛程式。
-
設定具有適當許可的任務角色。您必須使用具有 ECS Exec 適當許可的任務角色。如需詳細資訊,請參閱任務 IAM 角色。
-
驗證版本需求。ECS Exec 具有版本要求,取決於您的任務是否託管於 Amazon EC2 或 AWS Fargate:
-
如果您使用的是 Amazon EC2,則必須使用在 2021 年 1 月 20 日之後發行的 Amazon ECS 最佳化 AMI,且代理程式版本為 1.50.2 或更高版本。如需詳細資訊,請參閱 Amazon ECS 最佳化 AMI。
-
如果您使用的是 AWS Fargate,則必須使用平台版本
1.4.0
或更新版本 (Linux) 或1.0.0
(Windows)。如需詳細資訊,請參閱 AWS Fargate 平台版本。
-
使用 主控台進行服務任務
您可以使用 主控台來執行使用 ECS Exec 的命令。
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在叢集頁面上,選擇叢集。
-
在叢集詳細資訊頁面的服務區段中,選擇服務。
服務詳細資訊頁面隨即顯示。
-
在服務詳細資訊頁面上,選擇任務。然後,選擇任務。
-
在容器下,選擇您要使用 ECS Exec 的容器。
-
若要執行命令:,請執行下列其中一項操作:
-
選擇連線。
CloudShell 工作階段會顯示您可以在其中執行命令的位置。
-
選擇箭頭,然後選擇複製 AWS CLI 命令。
然後,您可以在本機執行命令。
-
預期結果
如果連線成功,您應該會從容器看到互動式 shell 提示。您現在可以直接在容器環境中執行命令。若要結束工作階段,請選擇結束工作階段。
使用 主控台執行獨立任務
您可以使用 主控台來執行使用 ECS Exec 的命令。
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
在叢集頁面上,選擇叢集。
-
在叢集詳細資訊頁面的任務區段中,選擇任務。
任務詳細資訊頁面隨即顯示。
-
在容器下,選擇您要使用 ECS Exec 的容器。
-
若要執行命令:,請執行下列其中一項操作:
-
選擇連線。
CloudShell 工作階段會顯示您可以在其中執行命令的位置。
-
選擇箭頭,然後選擇複製 AWS CLI 命令。
然後,您可以在本機執行命令。
-
預期結果
如果連線成功,您應該會從容器看到互動式 shell 提示。您現在可以直接在容器環境中執行命令。若要結束工作階段,請選擇結束工作階段。
使用命令 shell
您可以使用命令 shell 來執行使用 ECS Exec 的命令。
在確認 ExecuteCommandAgent
正在執行後,您可以使用以下命令在容器上開啟交互式 Shell。如果您的任務包含多個容器,您必須使用 --container
旗標指定容器名稱。Amazon ECS 僅支援啟動互動式工作階段,因此您必須使用 --interactive
旗標。
下列命令會針對 ID 為 task
的容器執行互動式-id 的任務,對名為 container-name
/bin/sh
命令。
task-id
是任務的 Amazon Resource Name (ARN)。
aws ecs execute-command --cluster
cluster-name
\ --tasktask-id
\ --containercontainer-name
\ --interactive \ --command"/bin/sh"
預期結果
如果命令成功,您應該會從容器看到互動式 shell 提示。您現在可以直接在容器環境中執行命令。若要結束工作階段,請輸入 exit
或按 Ctrl+D
。