因此,如果我有两个lambdas,一个在私有VPC中,一个不在VPC上,从公共lambda内部调用私有lambda可以工作,但我不能从私有lambda中调用公共。
没有NAT设置。
这是为什么?看来我理论上不应该从公众那里打电话给私人。
答案 0 :(得分:19)
为了触发Lambda函数,所需的一切都是让调用者具有对Invoke
AWS API的出站访问权限。调用的Lambda函数不必具有任何打开的入站端口或任何公共Internet访问。
因此公共(非VPC,具有Internet访问权限)Lambda函数可以调用Invoke
API来触发私有Lambda函数,但私有VPC(无Internet访问)Lambda函数无法访问{{1用于触发任何Lambda函数的API。
答案 1 :(得分:1)
要解决此问题,您可以将VPC内的lambda配置为可以访问互联网。 This文章介绍了如何设置此配置。
答案 2 :(得分:1)
在VPC内部,您需要一个AWS VPC接口终端节点(https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。它允许访问AWS Lambda服务,而无需通过Internet。