通过 public IP 地址调用 AWS Lambda 函数

Call AWS Lambda function via public IP address

我正在使用 AWS Lambda 构建网络服务器,我需要一个 public IP 地址,我可以调用它来请求 Lambda 函数。我的用户需要将此 IP 地址作为 A 记录放入他们的 DNS。

是否可以通过某种方式将弹性 IP 关联到传入流量的单个 Lambda 函数?也许通过负载平衡器?

对于传出流量,我有 NAT 和 Internet 网关,它们工作正常。

您有 2 个选项可以提供此功能:

  • API Gateway - 这是为传统的 API 调用而设计的,您需要在 AWS 中为每个将使用 API 网关。
  • Application Load Balancer - You can use an ALB to have your Lambda as a target 所有请求。但是,如果没有基于路径的模式匹配,请注意所有请求都将到达相同的 Lambda。

以上两项都要求子域由 CNAME 而不是 A 记录映射。这是因为这两个域都很少回收 IP 地址。

如果您绝对必须将记录解析为 IP,则需要使用 NLB in front of you ALB。 NLB 支持每个子网的静态 IP,然后 ALB 将通过 IP 映射和现有 AWS 服务成为其目标。如果您可以使用 CNAME,则无需执行此操作。