amazon-web-services - 有没有办法在没有 VPC 的情况下将静态 IP 分配给 AWS Lambda?

标签 amazon-web-services aws-lambda aws-api-gateway amazon-vpc cold-start

我希望为通过 API 网关调用的 Lambda 分配一个静态 IP。这是必需的,因为我从此 lambda 调用的下游系统仅接受来自白名单 IP 的 Web 请求。

我通过与我的 lambda 关联的 VPC 成功地实现了这一点。但是 VPC 引入了一个糟糕的冷启动时间,有时范围为 12-16 秒。所以我正在寻找一种方法来防止从 VPC 冷启动,但同时为 lambda 分配一个静态 IP。

最佳答案

您将需要:

  • 创建 专有网络 带有 Internet 网关、公共(public)子网和私有(private)子网
  • 附上 AWS Lambda 函数 到私有(private)子网
  • 启动 NAT网关在公共(public)子网中并更新私有(private)子网的路由表以使用 NAT 网关

  • NAT 网关将使用 弹性IP地址 (这是一个静态 IP 地址)。从 Lambda 函数到 Internet 的所有流量都将来自该 IP 地址,可以在白名单中使用。

    您可能认为这对于简单地附加静态 IP 地址有点过头了,但是多个 Lambda 函数可以并行运行,并且它们可以在多个可用区中运行。通过 NAT 网关发送所有流量是确保它们都具有相同 IP 地址的唯一方法。 (或者,更具体地说,每个启动 NAT 网关的 AZ 一个 IP 地址。)

    关于amazon-web-services - 有没有办法在没有 VPC 的情况下将静态 IP 分配给 AWS Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56676259/

    相关文章:

    python - Elastic Beanstalk 中的 enum34 问题

    amazon-web-services - S3 存储成本是基于当前总使用量还是摄入总量

    linux - Docker K8s 优化镜像以减少加载时间

    Python boto3 SNS 电子邮件格式(每个字符串换行)

    python-2.7 - AWS Lambda 和 Numpy 库 - 导入多数组 numpy 扩展模块失败

    python - s3cmd 节点名称或服务名称已提供,或未知

    amazon-web-services - 有什么方法可以将触发器添加到 Terraform 中的 lambda 函数?

    aws-cloudformation - c# aws api gateway serverless.template 结构不通过 CloudFormation 处理

    aws-cloudformation - 我想将 API Gateway 查询字符串参数添加到 cloudformation 模板

    amazon-web-services - AWS API 网关 + Elastic Beanstalk 和微服务