是有可能的公网IP分配给AWS lambda函数?

问题描述 投票:5回答:2

我们需要访问企业后台API,它们只接受来自授权的IP地址的电话。

这时我们的移动客户端拨打的进行一些转换,然后调用在具有指定授权的公网IP地址的EC2实例另一个服务的AWS lambda函数。这第二个服务执行到企业后端返回数据到拉姆达,然后到客户端的最后通话。

这是工作正常,但它增加了我们希望避免这样的架构一些不必要的复杂性。

是否有可能在公网IP分配给lambda函数以某种方式,以避免在EC2这种额外的服务?

谢谢,

那里

amazon-web-services amazon-ec2 aws-lambda
2个回答
12
投票

在简单的解决方案是这样的:

  • 创建一个NAT实例或NAT网关与弹性IP地址
  • 创建一个使用NAT设备作为其默认路由的私人VPC子网
  • 部署VPC lambda函数,与私人子网相关。

创建的每个拉姆达容器将对私人子网,这意味着NAT设备将其默认网关,这意味着NAT设备的EIP将是绑定于内部来源连接其源IP地址的弹性网络接口(ENI)互联网。

没有改变的lambda函数的代码,本身是必需的。

以上是官方的解决办法。

还要注意与当前的技术,将拉姆达funcion一个VPC内将有冷启动时间,任何时候一个新的弹性网络接口(ENI)的需要来分配的影响。

当lambda函数被配置为一个VPC内运行时,它会产生额外ENI启动处罚。

https://docs.aws.amazon.com/lambda/latest/dg/vpc.html


0
投票

你可以从方法请求头“SOURCE_IP”或“X - 转发,对于”。并转换为事件,然后处理它在你的lambda函数。

© www.soinside.com 2019 - 2024. All rights reserved.