【问题标题】:Is it possible to assign a public IP to a Lambda function in AWS?是否可以将公共 IP 分配给 AWS 中的 Lambda 函数?
【发布时间】:2017-05-07 18:52:06
【问题描述】:

我们需要访问企业后端中仅接受来自授权 IP 地址的调用的 API。

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

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

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

谢谢,

GA

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda


    【解决方案1】:

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

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

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

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

    创建的每个 Lambda 容器在该私有子网上都有一个弹性网络接口 (ENI),这意味着 NAT 设备将是其默认网关,这意味着 NAT 设备的 EIP 将是其源 IP 地址,用于内部发起的连接绑定到 Internet。

    lambda 函数代码不做任何改动,本身是必需的。

    以上为官方解决方案。

    另请注意,使用当前技术,将 Lambda 函数放置在 VPC 中会影响冷启动时间,无论何时需要分配新的弹性网络接口 (ENI)。

    当 Lambda 函数配置为在 VPC 中运行时,它会产生额外的 ENI 启动损失。

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

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 2021-08-13
    • 2021-08-05
    • 2021-09-03
    相关资源
    最近更新 更多