【问题标题】:Can I change my AWS Lambda's public IP on every request?我可以在每个请求上更改我的 AWS Lambda 公共 IP 吗?
【发布时间】:2016-10-13 23:35:16
【问题描述】:

每次我提出请求时,我都希望获得一个新的公共 IP。是否可以有目的地触发我的 IP 重新配置?

【问题讨论】:

  • 我不认为这是可能的......因为他们用完了 IPv4 地址。你可以要求支持这是可能的。我唯一知道的是您必须重新启动服务器才能获得新 IP
  • AWS Lambda 首先是否有公共 IP?

标签: node.js amazon-web-services lambda


【解决方案1】:

来自 AWS lambda 开发人员指南:“默认情况下,Lambda 在安全的 VPC 中运行您的函数,可以访问 AWS 服务和互联网。 VPC 归 Lambda 所有,不连接到您账户的默认 VPC。”例如,仅当我需要静态 IP 来将防火墙上的访问列入白名单时,我才使用 NAT 网关方法。

【讨论】:

    【解决方案2】:

    默认情况下,根据您的配置,Lambda 函数会从您的 VPC 中一个或多个子网内的私有 IP 调用。没有配置公网IP#;他们被分配了私有 IP。

    如果要求为 Lambda 函数分配一个公共 IP 号,您需要configure a NAT Gateway or NAT instance 来提供互联网访问,因此需要一个公共 IP。然后,Lambda 流量将归属于 NAT 网关/实例的公共 IP 地址。

    使用给定的NAT Gateway 分配了弹性 IP 地址,但无法重新分配 - 它是静态的。因此,NAT 网关无法满足您的需求。

    您必须使用NAT instance。然后,Lambda 函数需要在每个请求结束时终止/启动 NAT 实例。这将导致 EC2 为您的 NAT 实例分配一个新的公共 IP - 假设它启动的子网配置为在启动时自动分配 IP#。

    鉴于此,您必须在每次请求后重新启动 NAT 实例,以便为其分配新的 IP#。 此过程将允许每个请求每次都归属于一个新的公共 IP#。

    请注意,在 NAT 实例启动/终止阶段,您的 Lambda 函数将无法访问互联网。您可以考虑使用简单排队服务对 Lambda 函数进行排队,以防止对 NAT 实例的争用。

    缩放也将成为一个问题,因为这些函数都需要 NAT 实例可用于每次调用。如果您担心正常运行时间和可用性,请在 NAT 服务级别would need to implement a HA solution

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 2023-03-08
      • 2022-01-21
      相关资源
      最近更新 更多