我们需要访问企业后台API,它们只接受来自授权的IP地址的电话。
这时我们的移动客户端拨打的进行一些转换,然后调用在具有指定授权的公网IP地址的EC2实例另一个服务的AWS lambda函数。这第二个服务执行到企业后端返回数据到拉姆达,然后到客户端的最后通话。
这是工作正常,但它增加了我们希望避免这样的架构一些不必要的复杂性。
是否有可能在公网IP分配给lambda函数以某种方式,以避免在EC2这种额外的服务?
谢谢,
那里
在简单的解决方案是这样的:
创建的每个拉姆达容器将对私人子网,这意味着NAT设备将其默认网关,这意味着NAT设备的EIP将是绑定于内部来源连接其源IP地址的弹性网络接口(ENI)互联网。
没有改变的lambda函数的代码,本身是必需的。
以上是官方的解决办法。
还要注意与当前的技术,将拉姆达funcion一个VPC内将有冷启动时间,任何时候一个新的弹性网络接口(ENI)的需要来分配的影响。
当lambda函数被配置为一个VPC内运行时,它会产生额外ENI启动处罚。
你可以从方法请求头“SOURCE_IP”或“X - 转发,对于”。并转换为事件,然后处理它在你的lambda函数。