inf*_*lad 13 cold-start amazon-web-services amazon-vpc aws-lambda aws-api-gateway
我希望为通过 API 网关调用的 Lambda 分配一个静态 IP。这是必需的,因为我从此 lambda 调用的下游系统仅接受来自白名单 IP 的 Web 请求。
我通过与我的 lambda 关联的 VPC 成功地实现了这一点。但是 VPC 引入了一个糟糕的冷启动时间,有时范围为 12-16 秒。所以我正在寻找一种方法来防止这种从 VPC 冷启动,但同时为 lambda 分配一个静态 IP。
Joh*_*ein 19
您将需要:
NAT 网关将使用弹性 IP 地址(静态 IP 地址)。从 Lambda 函数到 Internet 的所有流量都将来自此 IP 地址,可以在白名单中使用。
您可能认为这对于简单地附加静态 IP 地址有点过分,但多个 Lambda 函数可以并行运行,并且它们可以在多个可用区中运行。通过 NAT 网关发送所有流量是确保它们都具有相同 IP 地址的唯一方法。(或者,更具体地说,启动 NAT 网关的每个可用区有一个 IP 地址。)
您不能为任何Lambda 函数分配公共/静态 IP 。
您唯一的好选择是部署到具有 Internet 网关的 VPC 中,并通过具有弹性 IP 的 NAT 配置来自 Lambda 子网的路由。然后您的目标主机可以将弹性 IP 列入白名单。
另见:
我同意 John 对静态 IP 白名单部分的回答。但是,它不会解决您的冷启动问题,因为 lambda(如果理想)实际上需要很短的时间才能启动。所以我建议你也创建一个 Cloudwatch 事件来定期点击 lambda 来解决这个问题,或者编写一个简单的代码(在 lambda 或其他地方),它会定期发送一个空请求,以便解决冷启动问题。您可以在 X-Ray 中查看改进。这是一个开销但一次性的过程。
| 归档时间: |
|
| 查看次数: |
14312 次 |
| 最近记录: |