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

为何调用waitUntilInstanceTerminated会抛出含EC2实例原始JSON的错误?

EC2实例终止Waiter调用失败排查方案
  • 先确认实例当前状态
    调用waitUntilInstanceTerminated前,手动调用DescribeInstancesCommand查询实例状态,确认实例是否已经进入shutting-down或terminated流程。如果实例处于running、stopped这类非终止状态,waiter会直接触发FAILURE。

  • 调整Waiter的轮询配置
    默认waiter的超时时间或轮询间隔可能不满足你的实例终止耗时,自定义配置参数延长等待时间:

    await waitUntilInstanceTerminated(
      {
        client: ec2Client,
        maxWaitTime: 180, // 最长等待3分钟
        minDelay: 3, // 每3秒轮询一次状态
      },
      { InstanceIds: ['你的实例ID'] }
    );
    
  • 检查权限完整性
    确保执行代码的IAM身份拥有ec2:DescribeInstances权限,waiter内部依赖该接口查询状态,权限缺失会导致状态查询失败,直接返回FAILURE。

  • 验证实例ID的正确性
    确认传入waiter的InstanceIds和你调用TerminateInstancesCommand时传入的完全一致,避免因ID错误导致查询到不存在的实例,触发失败判定。

  • 解析错误中的实例状态
    错误信息里的reason包含了DescribeInstancesCommand的输出,把具体内容展开,就能看到实例的真实状态,比如是否处于异常状态(如error),这会直接导致waiter判定FAILURE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:05:51