【问题标题】:ec2 waitfor timesout after 2 minutesec2 等待 2 分钟后超时
【发布时间】:2016-05-07 13:24:22
【问题描述】:

我有一个简单的 lambda 函数来检查实例状态,但它会超时。我已将超时设置为 2 分钟。该角色拥有 EC2 上的所有权限。

    ec2.waitFor('instanceRunning', {InstanceIds: ['someinstanceid'], DryRun:true}, function(err, data) {
      if (err)
      {
            console.log(err);
            context.fail(err);
      }
      else
      {
            console.log(data);
            context.succeed(data);
      }
    });

【问题讨论】:

  • 声明:“我已将超时设置为 2 分钟”和“2 分钟后超时”听起来就像预期的那样。问题到底是什么?您希望发生什么不同的事情?
  • 我期待它完成 waitFor 调用并返回值而不是超时。
  • 那么您可能需要等待超过 2 分钟。

标签: node.js amazon-web-services amazon-ec2 aws-sdk aws-lambda


【解决方案1】:

致所有骑着谷歌来到这里的人:

可以像这样配置waitFor 的行为:

let params = {
    InstanceIds: ["i-1234567890"],
    //Waiter configuration
    $waiter: {
        maxAttempts : 1000,
        delay: 10
    }
};

EC2.waitFor("instanceRunning", params, function(error, data){
    /***/
}.bind(this));

这里我配置了 10 秒的检查延迟,最多 1000 次尝试,也就是 166 分钟。

请注意,所有maxAttempts 都需要失败,以便您知道该实例实际上无法启动,因此您可能需要谨慎使用它。

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2016-09-13
    • 1970-01-01
    • 2018-01-25
    相关资源
    最近更新 更多