首页 > 解决方案 > Lambda(私有子网)到 Lambda(公共子网)调用超时

问题描述

我的 VPC 中有 2 个 lambda。我的 VPC 中有 4 个子网,2 个是公共的,2 个是私有的。

我在一个私有子网中有一个 lambda,另一个在公共子网中有一个。当我尝试从公共子网中的一个调用私有子网中的 lambda 时,它会超时。我正在使用 boto3 进行 lambda 到 lambda 调用,如此给出。

但是,我可以将公有子网中的 lambda 调用到在同一 VPC 内的其他公有子网中创建的新 lambda。

公共子网没有附加 NAT。为什么会发生这种情况?

标签: amazon-web-servicesaws-lambda

解决方案


来自公共子网的调用超时,因为 VPC 中的 lambda 函数没有公共 IP也没有互联网访问。来自文档

将函数连接到公共子网不会为其提供 Internet 访问权限或公共 IP 地址

此外,当lambda 在 VPC 中时,您不能通过其弹性网络接口(ENI) 调用它。lambda 的 VPC 功能是让您的函数调用 VPC 中的私有资源,而不是相反。

换句话说,将 lambda 放入 VPC 的唯一原因是访问其私有资源(例如私有子网中的 RDS)。它不允许,例如,私有子网中的私有实例在没有 NAT 网关/实例的情况下调用您的 lambda 函数。


推荐阅读