如何解决如何使2个Lambda函数彼此通信..当其中之一无法访问互联网时?
这是我的事: 我有2个功能A和B:
- A在AWS提供的默认Lambda VPC中,具有开放的Internet访问权限 入站和出站
- B在具有RDS DB的特定VPC中,具有入站访问权限,但没有 互联网访问(没有NAT网关)。
过程是这样的:
- A将数据发送到B(通过API网关),而B将数据插入RDS数据库中
- B应该(通过另一个API网关)发送确认消息,但A不断收到502错误(我猜是超时)。
起初,我认为这是一个愚蠢的Lambda代理输出格式错误,但现在我意识到它比这更严重。 我正在寻找一些简单/便宜的出路(我是一名预算有限的学生,而这是PoC)。有什么简单的方法可以解决这个问题?
解决方法
可悲的是,他们都无法上网。
默认VPC中的“放置”功能A不会为其提供Internet访问权限或公共IP :。来自docs。
将功能连接到公共子网不能访问Internet或公共IP地址。
如果不是在VPC中,则功能A可以调用B。在这种情况下,它将可以访问Internet,并且可以直接调用功能B或调用您的API网关端点。但是它不能在公共子网中。但是,如果要将其放置在VPC中,则它应位于专用子网(非公共)中,并且应将专用端点用于API网关。这样的lambda将无法使用NAT网关调用公共API。
功能B将能够在您使用private endpoint的情况下调用您的API网关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。