使用 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 运行命令。
-
在 Clusters(集群)页面上,选择集群。
-
在“集群详细信息”页面,找到服务部分,然后选择服务。
此时将显示服务详细信息页面。
-
在“服务详细信息”页面上,选择任务。然后,选择任务。
-
在容器下,选择要在其中使用 ECS Exec 的容器。
-
要运行命令,请执行以下操作一:
-
选择连接。
CloudShell 会话会显示您可以在哪里运行命令。
-
选择箭头,然后选择复制 AWS CLI 命令。
然后,您可以在本地运行命令。
-
预期结果
如果连接成功,则您应该会从容器中看到交互式 shell 提示。现在,您可以直接在容器环境中运行命令。要退出会话,请选择结束会话按钮。
使用控制台完成独立任务
您可以使用控制台通过 ECS Exec 运行命令。
-
在 Clusters(集群)页面上,选择集群。
-
在“集群详细信息”页面上的任务部分中,选择任务。
此时将显示任务详细信息页面。
-
在容器下,选择要在其中使用 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 资源名称(ARN)。
aws ecs execute-command --cluster
cluster-name
\ --tasktask-id
\ --containercontainer-name
\ --interactive \ --command"/bin/sh"
预期结果
如果命令成功,则您应该会从容器中看到交互式 shell 提示。现在,您可以直接在容器环境中运行命令。要退出会话,请键入 exit
或按 Ctrl+D
。