You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ecs-cli启动Fargate容器时如何配置enable_execute_command

解决方案

你可以通过以下两种方式实现需求:

方案1:服务创建后通过aws cli更新配置(最简便)

你之前更新失败是因为没有加强制新部署的参数,--enable-execute-command是服务级配置,不需要修改任务定义,执行以下命令即可开启:

aws ecs update-service --cluster ${cluster_name} --service ${service_name} \
  --enable-execute-command \
  --force-new-deployment

该命令会自动使用你当前的任务定义启动新的任务实例,新启动的所有Fargate容器都支持exec功能。

方案2:整合到启动脚本实现一键部署

如果不想每次创建服务都手动执行更新,可以把启动逻辑封装为shell脚本,示例如下:

# 原有ecs-cli配置与启动命令
ecs-cli configure --cluster ${cluster_name} --default-launch-type FARGATE --region ${AWS_REGION} --config-name ${config_name}
ecs-cli compose --project-name ${service_name} service up

# 自动开启exec功能
aws ecs update-service --cluster ${cluster_name} --service ${service_name} \
  --enable-execute-command \
  --force-new-deployment

前置依赖检查

开启功能前请确保你的ecsTaskExecutionRole已经添加了SSM会话管理所需的权限,权限示例如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:CreateControlChannel",
        "ssmmessages:CreateDataChannel",
        "ssmmessages:OpenControlChannel",
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": "*"
    }
  ]
}

验证方式

新任务启动完成后,执行以下命令确认配置已生效:

aws ecs describe-tasks --cluster ${cluster_name} --tasks <你的任务ARN> --query 'tasks[0].enableExecuteCommand'

返回true即可正常使用aws ecs execute-command进入容器执行命令。

内容的提问来源于stack exchange,提问作者Alice Heaton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:06:04