EC2上ECS容器执行execute-command遇TargetNotConnectedException错误求助
解决ECS Execute-Command的TargetNotConnectedException错误
检查EC2实例及容器端的连接状态
- 登录目标EC2实例,查看ECS代理运行状态:
sudo systemctl status ecs,如果状态异常,重启服务:sudo systemctl restart ecs - 进入目标容器,测试与SSM端点的连通性:
nc -zv ssm.<你的区域>.amazonaws.com 443,确保网络能正常访问该端点 - 验证EC2实例上的SSM Agent版本,要求不低于2.3.1200.0,查看版本:
sudo snap list amazon-ssm-agent,版本过低则执行更新:sudo snap refresh amazon-ssm-agent
验证任务定义与权限配置
- 确认任务定义中已开启Execute Command支持:需在
linuxParameters字段设置initProcessEnabled: true,同时任务的执行角色(executionRoleArn)需附加AmazonSSMManagedInstanceCore权限策略 - 检查容器运行用户权限:如果容器以非root用户启动,确保该用户拥有访问/dev/tty设备的权限,可在容器内执行
ls -l /dev/tty确认权限设置 - 核对网络安全规则:若任务使用awsvpc网络模式,检查任务所属安全组是否允许出站到443端口;若使用bridge模式,确认EC2实例的安全组及容器网络路由无限制
清理本地缓存与更新工具
- 清理AWS CLI本地缓存:执行
aws configure reset --profile <你的配置文件名>(若使用默认配置可省略--profile参数),或直接删除~/.aws/cache目录下的所有文件 - 更新AWS CLI到最新版本:旧版本可能存在兼容性问题,执行
pip install awscli --upgrade完成更新,之后验证版本:aws --version - 重启目标ECS任务:在ECS控制台找到目标任务,执行重启操作,等待任务重新部署完成后再次尝试
aws ecs execute-command命令
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

