AWS Lambda 函数无法调用同一 VPC 中的另一个 Lambda 函数

Mal*_* Gk 9 amazon-web-services aws-lambda

我创建了 1 个10.5.0.0/16具有 2 个子网 ( 10.5.1.0/2410.5.4.0/24) 的 VPC。

我创建了一个安全组:

入境规则:

Type Protocol   Port   range   Source      Description - optional
All  traffic    All    All    0.0.0.0/0    allowing traffic from same security group
All  traffic    All    All    ::/0         allowing traffic from same security group
Run Code Online (Sandbox Code Playgroud)

出境规则:

Type Protocol   Port   range   Source      Description - optional
All  traffic    All    All    0.0.0.0/0    allowing traffic from same security group
All  traffic    All    All    ::/0         allowing traffic from same security group
Run Code Online (Sandbox Code Playgroud)

现在,我创建了 2 个具有适当 IAM 角色(其中包含调用策略)的 Lambda 函数。这 2 个 Lambda 函数位于相同的 VPC、子网和安全组中。

情况1:

  • 当 Lambda 函数未附加 VPC 子网和安全组时,我能够从 Lambda 1 成功调用 Lambda 2

案例2:

  • 当 Lambda 1 位于同一 VPC 中时,我无法从 Lambda 1 调用 Lambda 2

我想我错过了一些东西,但我无法弄清楚。有什么建议么?

Mar*_*cin 12

我想我错过了一些东西,但我无法弄清楚

不幸的是,调用 lambda 的唯一方法是通过公共 lambda 服务端点。由于 VPC 中的 lambda 函数没有互联网访问权限,也没有公共 IP,因此您无法在无法访问互联网的情况下从 VPC 中的另一个 lambda 函数调用一个 lambda 函数。来自文档

将功能连接到公共子网并不为其提供Internet 访问权限或公共 IP 地址

遗憾的是,它们位于同一 VPC 甚至同一子网中这一事实是无关紧要的。

要解决此问题,调用函数必须能够访问互联网,因为 lambda 服务没有 VPC 接口端点这可以通过将其放置在私有子网中并使用具有正确配置的路由表的NAT 网关/实例来提供访问来实现。

  • 我相信这个信息不再正确,AWS现在也为其Lambda服务提供[VPC端点](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc-endpoints.html) 。 (8认同)