2013-04-16 44 views
1

我正在使用EC2 API來請求EC2上的SPOT實例 - 下面的代碼在node.js上效果很好。問題在於,如果價格太低,EC2請求將保持活躍狀態​​,並且如果價格低於設定的價格將被填充。我知道我可以編寫自己的邏輯來尋找未填充的請求並殺死它們,但是想知道是否有一個乾淨的方法來做到這一點,作爲初始請求的一部分。填充或殺死EC2競價請求

var SPOTRequest = { SpotPrice : price, InstanceCount : NumToLaunch, Type : "one-time", LaunchSpecification :sClient }

ec2.client.requestSpotInstances(SPOTRequest,function (err, data) { 
     if (err) { 
      returnPackage.status = "ERROR:"+err; 
      res.write(JSON.stringify(returnPackage)); 
      res.end(); 
      console.log(err); 

     }   
     else { 
      returnPackage.status = "SUCCESS"; 
      res.write(JSON.stringify(returnPackage)); 
      res.end(); 
      console.log(data); 
     } 

}); 

}

回答

2

你可以從requestSpotInstances()方法使用ValidUntil參數,這樣你的要求立即自動失效,如果不是你想要的時間框架內填充:

ValidUntil - (日期)

請求的結束日期。

如果這是一次性請求,請求將保持活動狀態,直到所有 實例啓動,請求被取消或達到此日期。如果 該請求持續存在,則該請求將一直保持活動狀態,直至取消該日期和時間爲止。