我的前提是我既不是系统主义者,也不是网络工程师。我正试图从同一vpc中的另一个lambda函数调用一个lambda函数。我的网络配置是:
- 1 vpc
- 1个公用子网和1个专用子网
- 2个路线表
- 1个互联网网关
- 1个安全组
我的lambda:
- 同时连接到子网和sec组
- 连接到数据库并检索数据
- 调用lambda函数发送推送通知
但是当第一个aws试图调用第二个aws时,返回timeout异常。我的想法是;看不见";第二。
我该如何解决这个问题?
感谢
这实际上是第一个Lambda(配置为使用VPC(没有出站互联网连接的结果。
请确保您具有连接到关联子网的路由表的NAT网关或NAT实例。
如果您的功能需要访问互联网,请使用网络地址转换(NAT(。将函数连接到公用子网不会为其提供internet访问或公用IP地址。
您需要删除公用子网的附件,因为Lambda无法分配公用IP,因此无法使用Internet网关。
如果异步调用第一个Lambda函数,它可以指定目标用于在执行完成时发送事件。
目的地可以是另一个AWS Lambda函数。此调用由AWS服务触发,不需要从第一个Lambda函数访问互联网(因此比使用NAT网关更便宜(。
请参阅:配置异步调用的目的地
(我自己还没有尝试过,但应该有效!(