本文将介绍如何使用 AWS ECS Exec 功能访问运行在 AWS Fargate 上的容器,以便在容器中执行命令。 参考
步骤 1: 为任务角色添加必要权限
首先,需要为任务角色添加以下权限:
步骤 2: 在容器定义中启用 initProcessEnabled
在任务的 containerDefinitions
中添加以下内容,以启用 initProcessEnabled
:
步骤 3: 更新任务定义
使用更新后的任务角色和容器定义,更新任务定义。您可以使用 AWS 管理控制台或 AWS CLI 来更新任务定义。
使用 AWS CLI 更新任务定义的命令如下:
请将 <task-definition-file-path>
替换为您自己的任务定义文件路径。
步骤 4: 更新 ECS 服务
如果您有正在运行的 ECS 服务,可以使用以下命令强制部署新的任务定义:
请将 <cluster-name>
、<service-name>
和 <task-definition-name>
替换为您自己的集群名称、服务名称和任务定义名称。
步骤 5: 运行新任务
使用以下命令运行新任务,并启用执行命令功能:
请将 <cluster-name>
、<task-definition-name>
、<subnet-id-1>
、<subnet-id-2>
、<security-group-id>
和 <aws-region>
替换为您自己的集群名称、任务定义名称、子网 ID、安全组 ID 和 AWS 区域,记录返回的taskArn值给后续使用。
步骤 6: 安装 Session Manager 插件
为了在本地计算机上使用 aws ecs execute-command
,您需要安装 Session Manager 插件。对于 macOS,可以执行以下命令进行安装:
步骤 7: 执行容器命令
安装完成后,您可以使用以下命令在容器中执行命令:
请将 <aws-region>
、<cluster-name>
、<task-arn>
和 <container-name>
替换为您自己的 AWS 区域、集群名称、任务 ARN 和容器名称。
执行上述命令后,您将进入容器的交互式 shell,可以在其中执行各种命令。
通过这些步骤,您已经成功使用 AWS ECS Exec 功能访问了运行在 AWS Fargate 上的容器,并可以在容器中执行命令。这对于调试和故障排查非常有用。