我有一个简单的lambda函数如下
var AWS = require("aws-sdk");
exports.handler = (event, context, callback) => {
var ec2 = new AWS.EC2({region:'us-east-1'});
return ec2.describeRegions({}).promise()
.then(function(regionResponse) {
console.log(regionResponse.Regions)
callback(null, regionResponse.Regions);
})
.catch(
function (err) {
console.log({"error" : err});
callback(err, null);
}
)
};
我可以在VPC之外成功运行此功能。
我使用VPC向导创建VPC,并使用单个公有子网和Internet网关创建VPC。我将该函数放在VPC中,并赋予它Lambda VPC执行权限的执行角色。 它现在因超时而失败,我将其设置为10秒(正常执行1秒)
我的配置中缺少什么阻止该功能访问VPC内的AWS SDK?
答案 0 :(得分:0)
您在return语句后放回调。当然,因为你从函数返回它将永远不会被执行。
如果运行Lambda的子网不公开或没有NAT网关,则无法连接到Internet,因此无法连接到AWS API。