我有一个简单的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) { consol
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?
>您将在return语句后进行回调.当然,它永远不会执行,因为你从函数返回. >如果运行Lambda的子网不是公共的或没有NAT网关,则它将无法连接到Internet,因此无法连接到AWS API.