我有这个简单的描述实例函数,我试图通过AWS Lambda在nodejs中运行:
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
exports.handler = function(event, context) {
console.log("\n\nLoading handler\n\n");
var ec2 = new AWS.EC2();
ec2.describeInstances(function(err, data) {
console.log("\nIn describe instances:\n");
if (err) {
console.log(err, err.stack);
context.done(null, 'Function Finished from error!'); // an error occurred
}else {
console.log("\n\n" + data + "\n\n");
context.done(null, 'Function Finished with data!'); // successful response
}
});
};
这不会给我带来任何错误,CloudWatch中唯一的输出是:
2016-03-21T17:01:59.085Z xxxxxxx-xx.... Task timed out after 3.00 seconds
任何人都知道可能出现什么问题?
答案 0 :(得分:10)
我也面临同样的问题..我将超时(Lambda - >配置 - >高级设置)从3秒增加到5秒,并且工作正常。
答案 1 :(得分:2)
确保执行角色具有EC2权限并尝试使用:
context.fail()
或context.succeed()
VS
context.done()
答案 2 :(得分:1)
如果您在VPC中,则无法再访问互联网了!
您应该配置NAT以启用lambda中的传出Internet访问。