是否可以将公共IP分配给AWS中的Lambda函数?

G A*_*G A 8 amazon-ec2 amazon-web-services aws-lambda

我们需要在公司后端访问API,这些API只接受来自授权IP地址的呼叫.

此时,我们的移动客户端正在调用AWS Lambda函数执行某些转换,然后在分配了授权公共IP地址的EC2实例上调用另一个服务.第二个服务执行对公司后端的最终调用,将数据返回到lambda,然后返回给客户端.

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

是否有可能以某种方式将公共IP分配给lambda函数以避免在EC2中使用此额外服务?

谢谢,

GA

Mic*_*bot 13

直截了当的解决方案是:

  • 使用弹性IP地址创建NAT实例或NAT网关

  • 创建一个私有VPC子网,使用NAT设备作为其默认路由

  • 在VPC中部署与该私有子网关联的Lambda函数.

创建的每个Lambda容器将在该私有子网上具有弹性网络接口(ENI),这意味着NAT设备将是其默认网关,这意味着NAT设备的EIP将是其内部发起的连接的源IP地址.互联网.

不需要更改lambda函数代码.

以上是官方解决方案.

另请注意,使用当前技术,只要需要分配新的弹性网络接口(ENI),将Lambda函数放在VPC中就会对冷启动时间产生影响.

当Lambda函数配置为在VPC内运行时,会导致额外的ENI启动惩罚.

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