我正在使用EC2 API在EC2上请求SPOT实例 - 以下代码在node.js上运行良好。问题是,如果价格太低,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);
}
});
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);
}
});
答案 0 :(得分:2)
您可以使用requestSpotInstances()方法中的ValidUntil
参数,如果您的请求未在所需的时间范围内填写,请立即自动过期:
ValidUntil - (日期)
请求的结束日期。
如果这是一次性请求,请求将一直保持活动状态 实例启动,请求被取消或达到此日期。如果 请求是持久的,它一直保持活动状态,直到它被取消或 达到了这个日期和时间。