为什么我可以从非 VPC aws lambda 调用 on-VPC aws lambda 而不是相反?

Why can I call an on-VPC aws lambda from an off-VPC aws lambda but not vice versa?

因此,如果我有两个 lambda,一个在私有 VPC 中,一个不在 VPC 上,则从 public lambda 内部调用私有 lambda 是可行的,但我无法从中调用 public私有 lambda。

没有 NAT 设置。

这是为什么?理论上我应该无法从 public 中调用 private。

为了触发 Lambda 函数,调用者只需能够出站访问 Invoke AWS API。调用的 Lambda 函数不必具有任何开放的入站端口或任何 public Internet 访问权限。

所以一个public(非VPC,可以上网)Lambda函数可以调用Invoke API来触发私有Lambda函数,但是私有VPC(不能上网) access) Lambda 函数无法访问 Invoke API 来触发任何 Lambda 函数。

要解决此问题,您可以将 VPC 内的 lambda 配置为可以访问互联网。 This 文章解释了如何设置此配置。

在 VPC 内部,您需要一个 AWS VPC 接口端点 (https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。它允许在不通过 Internet 的情况下访问 AWS Lambda 服务。