使用 ECS Exec 執行命令 - Amazon Elastic Container Service

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

使用 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 的命令。

  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 叢集頁面上,選擇叢集。

  3. 在叢集詳細資訊頁面的服務區段中,選擇服務。

    服務詳細資訊頁面隨即顯示。

  4. 在服務詳細資訊頁面上,選擇任務。然後,選擇任務。

  5. 容器下,選擇您要使用 ECS Exec 的容器。

  6. 若要執行命令:,請執行下列其中一項操作:

    • 選擇連線

      CloudShell 工作階段會顯示您可以在其中執行命令的位置。

    • 選擇箭頭,然後選擇複製 AWS CLI 命令

      然後,您可以在本機執行命令。

預期結果

如果連線成功,您應該會從容器看到互動式 shell 提示。您現在可以直接在容器環境中執行命令。若要結束工作階段,請選擇結束工作階段

使用 主控台執行獨立任務

您可以使用 主控台來執行使用 ECS Exec 的命令。

  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 叢集頁面上,選擇叢集。

  3. 在叢集詳細資訊頁面的任務區段中,選擇任務。

    任務詳細資訊頁面隨即顯示。

  4. 容器下,選擇您要使用 ECS Exec 的容器。

  5. 若要執行命令:,請執行下列其中一項操作:

    • 選擇連線

      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 \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh"

預期結果

如果命令成功,您應該會從容器看到互動式 shell 提示。您現在可以直接在容器環境中執行命令。若要結束工作階段,請輸入 exit或按 Ctrl+D