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

使用 ECS Exec 运行命令

您可以使用 Amazon ECS Exec 收集与您的容器相关的诊断信息,并排除在容器的整个生命周期中遇到的错误。

先决条件

开始使用 ECS Exec 前,请确保您已完成以下操作:

  • 查看注意事项。有关更多信息,请参阅 注意事项

  • 为任务和服务配置 ECS Exec。有关更多信息,请参阅 配置 ECS Exec

  • 安装和配置 AWS CLI。有关更多信息,请参阅 Get started with the AWS CLI

  • 为 AWS CLI 安装 Session Manager 插件。有关更多信息,请参阅安装 AWS CLI Session Manager 插件

  • 为任务角色配置适当的权限。您必须使用具有 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. Clusters(集群)页面上,选择集群。

  3. 在“集群详细信息”页面,找到服务部分,然后选择服务。

    此时将显示服务详细信息页面。

  4. 在“服务详细信息”页面上,选择任务。然后,选择任务。

  5. 容器下,选择要在其中使用 ECS Exec 的容器。

  6. 要运行命令,请执行以下操作一:

    • 选择连接

      CloudShell 会话会显示您可以在哪里运行命令。

    • 选择箭头,然后选择复制 AWS CLI 命令

      然后,您可以在本地运行命令。

预期结果

如果连接成功,则您应该会从容器中看到交互式 shell 提示。现在,您可以直接在容器环境中运行命令。要退出会话,请选择结束会话按钮。

使用控制台完成独立任务

您可以使用控制台通过 ECS Exec 运行命令。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

  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 资源名称(ARN)。

aws ecs execute-command --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh"

预期结果

如果命令成功,则您应该会从容器中看到交互式 shell 提示。现在,您可以直接在容器环境中运行命令。要退出会话,请键入 exit 或按 Ctrl+D