公司用到了Amazon Elastic Container Service,完全托管的容器服务
服务器用的是Fargate,没有自己的服务器,纯托管的,开始部署的时候,也没有考虑到有一天要进入容器进行调试。
现在麻烦就来了,需要进入容器,查看文件日志
结果就很麻烦,解决的步骤如下:
一、查看集群状态,看看任务定义的版本号,下面是206
二、去到相应的任务定义
注意,现在只有一个任务执行角色,任务角色是个空的!!!
然后我们点开任务执行角色,添加权限
初始化的时候只有AmazonECSTaskExecutionRolePolicy, 我们需要加上AmazonSSMManagedInstanceCore
加完就上面一样。
三、返回到任务定义,使用JSON创建新修订
1 "taskRoleArn": "arn:xxxx:ecsTaskExecutionRole",
2 "executionRoleArn": "arn:ecsTaskExecutionRole",
新增taskRoleArn,和executionRoleArn保持一致,然后保存
四、按照新版本,部署新任务
从新任务定义更新服务
选择相应集群,相应服务
故障排除配置,务必开启ECS exec,然后更新即可
五、开启容器的shell
我去集群–服务–容器,点击连接
1aws ecs execute-command --cluster yoov_work_e_form_prod_cluster --task 23xxxxx --container yontainer --interactive --command '/bin/sh'
实际对应的命令如上。其实也可以用aws的cli客户端直接执行,只不过要拿到集群名和容器名。