Я работал над лямбда-функцией AWS, используя Node 8.10. Я заметил, что могу импортировать aws-sdk, но у меня были некоторые проблемы с запуском некоторых функций EC2. У меня есть роль с политикой, разрешающей доступ к моей функции. Вот где я хотел бы получить дополнительное понимание.
Я пытался запустить такой экземпляр ...
let params = { InstanceIds: ["i-31112345d325"] };
try{
let response = ec2.startInstances(params);
response.send();
}catch(ex){
console.log(ex);
}
и вот так ...
...
try{
let response = ec2.startInstances(params, function(err, data){
if(err) console.log(err);
else //do something else
});
);
}catch(ex){
console.log(ex);
}
ни один из этих методов не запускает машину EC2. Я немного покопался и вытащил обещание (), и это, похоже, работает.
try{
await ec2.startInstances(params).promise().then((response)=> {
console.log("Success with ", response);
})
}
catch(ex){
console.log(ex);
}
Я ничего не изменил. Большая часть кода, который я видел в Интернете, делает это первыми двумя способами. Может кто-нибудь объяснить, почему это не работает для меня? Документация, кажется, не касается этого, и примеры в документах, кажется, не работают для меня. (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#startInstances-property)