2016-01-29 37 views
0

我有一個簡單的lambda函數來檢查實例狀態,但超時。我已將超時設置爲2分鐘。該角色擁有EC2的所有權限。ec2 waitfor超時2分鐘後

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); 
     } 
    }); 
+0

聲明:「我已將超時設置爲2分鐘」以及「2分鐘後超時」聽起來像這樣表現得如預期。究竟是什麼問題?你期望以不同的方式發生什麼? –

+0

我期待它完成waitFor調用並返回值而不是超時。 – Asdfg

+0

然後您可能需要等待超過2分鐘。 –

回答

0

爲此來到這裏的人騎在谷歌:

這是可以配置的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需要失敗,所以你知道,實際上實例未能啓動,所以你可能要小心使用此。