我可以在每个请求中更改AWS Lambda的公有IP吗?

每当我提出要求时,我都希望获得新的公开IP。 是否有可能有意识地触发我的容器被回收,否则导致我的知识产权被重新configuration?

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

如果要求将Lambda函数分配给一个公共IP地址 ,则需要configuration一个NAT网关或NAT实例来提供Internet访问,因此也需要configuration一个公共IP。 Lambdastream量将被归因于NAT网关/实例的公共IP地址。

给定的NAT网关分配一个弹性IP地址,但不能重新分配 – 它是静态的。 所以一个NAT网关不会为你的目的工作。

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

鉴于此,您将不得不在每次请求后重新启动NAT实例,以便为其分配新的IP#。 这个过程将允许每次将请求归入新的公共IP地址。

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

缩放也将成为一个问题,因为这些function都需要NAT实例可用于每个调用。 如果正常运行时间和可用性是一个问题,则需要在NAT服务级别实施HA解决scheme 。