从VPC中运行的Lambda使用AWS SDK

我有一个简单的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之外成功运行此function。

我使用VPC向导创buildVPC,并使用单个公有子网和Internet网关创buildVPC。 我将这个函数放在VPC中,并赋予它一个具有Lambda VPC执行权限的执行angular色。 它现在失败了,我已经设置为10秒(正常执行1秒)

我的configuration中缺less什么function来阻止该function访问VPC内部的AWS SDK?

  1. 返回语句后,您正在callback。 当然,它不会被执行,因为你从函数返回。

  2. 如果运行Lambda的子网不公开,或者没有NAT网关,则无法连接到Internet,从而无法连接到AWS API。