带VPC的AWS Lambda函数仅在私有子网中有效

时间:2018-08-03 22:47:17

标签: amazon-web-services aws-lambda nat subnet vpc

我一直在努力整合Amazon Lambda函数以及与mySQL DB和外部API的RDS的连接。要访问API,需要有一个Internet网关,然后是允许来自0.0.0.0/0的连接的安全组。

我有一个公共子网和一个私有子网。公共子网路由到Internet网关,而私有子网路由到NAT。

这使我认为,如果我使用公共子网运行Lambda函数,它将连接到Internet。但是,每次超时。但是,当我从专用子网中运行lambda函数时,它起作用了!因此NAT似乎可以正常工作,因为那是私有sunet所关联的,但是仅使用Internet网关不起作用。

有人对此有任何解释吗?

1 个答案:

答案 0 :(得分:3)

要使Amazon Lambda函数连接到Internet,必须满足以下条件之一:

  • Lambda函数未 连接到VPC, OR
  • Lambda功能已连接到私有子网,并且配置了NAT网关/ NAT实例 OR
  • Lambda函数连接到公共子网,并且为子网中Lambda函数使用的弹性网络接口(ENI)分配了弹性IP地址

仅将Lambda函数连接到公共子网(没有EIP)将提供Internet访问。