[英]AWS Lambda function with Node issue
我一直在使用Node 8.10開發AWS Lambda函數。 我注意到我可以導入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計算機啟動。 我做了一些挖掘,並取出了promise(),它似乎起作用了。
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 )
對於節點8.10,處理程序功能支持callback
方法。 您可以使用該callback
告訴Lambda何時從回調函數中終止或答應
'use strict';
const AWS = require('aws-sdk');
var ec2 = new AWS.EC2();
exports.handler = (event, context, callback) => {
var params = { InstanceIds: ["i-1234567890abcdef0"]}
ec2.startInstances(params, function(err, data) {
if (err) callback(err.stack); // an error occurred
else callback(null, data); // successful response
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.