【问题标题】:How to choose Elastic IP when my aws lambda function execute当我的 aws lambda 函数执行时如何选择弹性 IP
【发布时间】:2019-09-10 06:27:14
【问题描述】:

我想在我的 lambda 函数执行时选择我自己的特定弹性 IP。

我的服务必须根据用户的属性来响应几种情况。 我可以在 lambda 函数中编写代码,可以选择我自己的弹性 IP 吗?

我已经搜索过这个。但旧信息说它做不到。 但最近我听说可以使用网络负载均衡器或应用程序负载均衡器。 但我不知道如何使用它来解决问题。

【问题讨论】:

  • “选择”是什么意思?举个例子
  • 为什么您希望这样做?对于想要使用多个公共 IP 地址的人来说,大多数用例是对阻止来自给定 IP 地址的过多流量的网站执行抓取。我们不支持或鼓励违反网站的条款和条件。

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


【解决方案1】:

没有。您不能将弹性 IP (EIP) 地址与 AWS Lambda 函数相关联。

嗯,实际上你可以,但我不建议这样做。当 Lambda 函数与 VPC 关联时,它通过弹性网络接口 (ENI) 进行连接。 可以将 EIP 附加到 ENI。如果 Internet 连接到公共子网,这也会授予对 Internet 的访问权限。

那为什么要避免呢?因为 Lambda 可能会创建额外的 ENI,尤其是在频繁调用和并行运行 Lambda 函数的情况下。这意味着它不会有一致的 ENI。

另一种方法是:

  • 将 AWS Lambda 函数附加到私有子网
  • NAT 网关放入公共子网
  • 将弹性 IP 地址与 NAT 网关关联
  • 从 Lambda 函数到 Internet 的所有流量都将来自 NAT 网关的 EIP(但是,我认为您无法更改该 EIP)

【讨论】:

  • 您能提供免费解决方案的链接吗?在不使用 NAT 网关或 NAT 实例的情况下将弹性 IP 附加到 Lambda 函数
【解决方案2】:

查看@John Rotenstein 的回复:对于小型系统,对同一 lambda 的调用有限,为 lambda 添加 EIP 到 ENI 可以工作 - 如果您在 lambda 前面放置一个队列来处理请求并限制lambda 的并发性为 1。这比每月 NAT 网关(节省约 30 美元)便宜。对于较大的系统,这可能不是问题,您可能需要多个并发 - 在这种情况下,NAT 网关是唯一的出路。

【讨论】:

  • 您能提供免费解决方案的链接吗?在不使用 NAT 网关或 NAT 实例的情况下将弹性 IP 附加到 Lambda 函数
猜你喜欢
  • 2020-12-15
  • 2017-06-20
  • 2016-02-19
  • 2016-10-16
  • 2018-01-11
  • 2017-09-05
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多