【发布时间】:2017-05-24 09:30:51
【问题描述】:
因此,如果我有两个 lambda,一个在私有 VPC 内,一个不在 VPC 上,则从公共 lambda 内部调用私有 lambda 可以,但我不能从私有 lambda 调用公共。
没有 NAT 设置。
这是为什么?看来理论上我应该不能从公众中调用私人。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-vpc
因此,如果我有两个 lambda,一个在私有 VPC 内,一个不在 VPC 上,则从公共 lambda 内部调用私有 lambda 可以,但我不能从私有 lambda 调用公共。
没有 NAT 设置。
这是为什么?看来理论上我应该不能从公众中调用私人。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-vpc
为了触发 Lambda 函数,调用者只需拥有对 Invoke AWS API 的出站访问权限。调用的 Lambda 函数不必具有任何打开的入站端口或任何公共 Internet 访问权限。
所以公有(非VPC,可以上网)Lambda函数可以调用InvokeAPI触发私有Lambda函数,但是私有VPC(不能上网)Lambda函数不能访问InvokeAPI触发任何 Lambda 函数。
【讨论】:
在 VPC 内部,您需要一个 AWS VPC 接口终端节点 (https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。它允许在不通过 Internet 的情况下访问 AWS Lambda 服务。
【讨论】:
要解决此问题,您可以将 VPC 内的 lambda 配置为可以访问互联网。 This 文章解释了如何设置此配置。
【讨论】: