Tag: amazon vpc

外部调用的Lambda函数超时

我有一个Lambda函数,我需要进行外部API调用。 我已经将Lambda函数添加到安全组,VPC和2个子网,并给出了以下文本: 当您启用VPC时,您的Lambdafunction将会失去默认的互联网访问权限。 如果您的function需要外部Internet访问,请确保您的安全组允许出站连接,并确保您的VPC具有NAT网关。 我进入VPC,创build一个NAT网关(我让AWS创build一个EIP),将其附加到我的lambda函数的一个子网上。 出于debugging目的,我的安全组出站function被设置为所有通信/所有目的地( 0.0.0.0/0 )。 另外我的这个VPC的networkingACL被设置为这个(有5个子网,包括那个有NAT网关的): 100 | ALL Traffic | ALL | ALL | 0.0.0.0/0 | ALLOW VPC上有相同的2个子网的路由表, 0.0.0.0/0路由设置为NAT网关的目标。 VPC上也有另外3个子网的路由表,其中0.0.0.0/0路由设置为定位到Internet网关。 两个路由表都有相同的local目标IP(VPC的IP)。 我得到的错误是: { Error: connect ETIMEDOUT xxxx:443 at Object.exports._errnoException (util.js:1018:11) at exports._exceptionWithHostPort (util.js:1041:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14) code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: 'xxxx', port: 443 } 我正在运行的节点代码在我的桌面节点环境中工作,并且POST调用在postman中工作,所以我相当肯定这是我的AWSconfiguration的问题。 我一直在使用这种情况作为资源: […]

从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?