通过 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,则无需执行此操作。
我正在使用 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,则无需执行此操作。