公司用到了Amazon Elastic Container Service,完全托管的容器服务
服务器用的是Fargate,没有自己的服务器,纯托管的,开始部署的时候,也没有考虑到有一天要进入容器进行调试。
现在麻烦就来了,需要进入容器,查看文件日志
结果就很麻烦,解决的步骤如下:
一、查看集群状态,看看任务定义的版本号,下面是206

二、去到相应的任务定义

注意,现在只有一个任务执行角色,任务角色是个空的!!!
然后我们点开任务执行角色,添加权限

初始化的时候只有AmazonECSTaskExecutionRolePolicy, 我们需要加上AmazonSSMManagedInstanceCore
加完就上面一样。
三、返回到任务定义,使用JSON创建新修订

"taskRoleArn": "arn:xxxx:ecsTaskExecutionRole",
"executionRoleArn": "arn:ecsTaskExecutionRole",
新增taskRoleArn,和executionRoleArn保持一致,然后保存
四、按照新版本,部署新任务
从新任务定义更新服务

选择相应集群,相应服务

故障排除配置,务必开启ECS exec,然后更新即可
五、开启容器的shell
我去集群–服务–容器,点击连接

aws ecs execute-command --cluster yoov_work_e_form_prod_cluster --task 23xxxxx --container yontainer --interactive --command '/bin/sh'
实际对应的命令如上。其实也可以用aws的cli客户端直接执行,只不过要拿到集群名和容器名。