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

设置AWS ECS缩容保护时遭遇Response code 400(Bad Request)错误求助

ECS任务缩容保护PUT请求返回400 Bad Request的解决方法

核心问题:缺少必填请求头

ECS代理的任务保护端点必须携带X-ECS-Task-ID请求头,用来指定要设置保护的具体任务ID。你的代码里没有添加这个头,这是导致400错误的最可能原因。

修复步骤

  • 获取当前任务ID:ECS代理会自动将ECS_TASK_ID环境变量注入到任务容器中,直接读取即可。
  • 添加请求头:在请求配置中加入headers字段,带上X-ECS-Task-ID参数。

修改后的代码

const got = require("got");

const SCALE_IN_PROTECTION_DURATION_MINUTES = 15;
const TASK_PROTECTION_URI = `${process.env.ECS_AGENT_URI}/task-protection/v1/state`;
const TASK_ID = process.env.ECS_TASK_ID;

try {
  const minutes = SCALE_IN_PROTECTION_DURATION_MINUTES;
  await got(TASK_PROTECTION_URI, {
    method: "PUT",
    headers: {
      "X-ECS-Task-ID": TASK_ID,
      "Content-Type": "application/json"
    },
    json: { 
      ProtectionEnabled: true, 
      ExpiresInMinutes: minutes 
    },
  });
} catch (error) {
  logger.error(error);
}

额外验证点

  • 确认ECS_TASK_ID环境变量有效性:可在容器内执行echo $ECS_TASK_ID查看是否有值。
  • 检查参数范围:ExpiresInMinutes必须在1-1440分钟之间,你的15分钟配置符合要求。
  • 确认任务类型:该端点仅支持EC2启动类型的ECS任务,Fargate任务需通过AWS ECS API的UpdateTaskProtection接口设置缩容保护。

内容的提问来源于stack exchange,提问作者Florian Ludewig

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:32:11