使用 API 网关访问私有子网内的 Lambda 函数
Access a Lambda function inside a private subnet using API gateway
我有一个包含 2 个 Lambda 函数 A 和 B 的 VPC:
- A 在 2 public 个子网上
- B 在 2 个带有 RDS 数据库实例的私有子网上
VPC本身通过NAT实例访问互联网。
我需要第 3 方 API 与 B 通信,但 B 在私有子网中。现在我想知道 API 网关是否解决了这个问题,或者它是否需要更多工作。
提前致谢
如果您希望第 3 方调用 Lambda 函数并向其传递数据,则 AWS API 网关 是正确的任务。这正是 API 网关的设计目的。
参见:Using AWS Lambda with Amazon API Gateway - AWS Lambda
或者,您可以使用 Elastic Load Balancer 并让它调用 Lambda 函数。
发件人:Using AWS Lambda with an Application Load Balancer - AWS Lambda
您还提到您有一个“在 2 个 public 子网上”的 AWS Lambda。 AWS Lambda 函数应该不配置为连接到 public 个子网。它们应该配置为使用“无 VPC”(在在这种情况下,他们可以直接访问互联网),或者他们应该连接到私有子网(如果需要,可以使用 NAT 网关或 NAT 实例访问互联网)。
参见:Configuring a Lambda function to access resources in a VPC - AWS Lambda:
Connect your function to private subnets to access private resources. If your function needs internet access, use network address translation (NAT). Connecting a function to a public subnet doesn't give it internet access or a public IP address.
我有一个包含 2 个 Lambda 函数 A 和 B 的 VPC:
- A 在 2 public 个子网上
- B 在 2 个带有 RDS 数据库实例的私有子网上
VPC本身通过NAT实例访问互联网。 我需要第 3 方 API 与 B 通信,但 B 在私有子网中。现在我想知道 API 网关是否解决了这个问题,或者它是否需要更多工作。
提前致谢
如果您希望第 3 方调用 Lambda 函数并向其传递数据,则 AWS API 网关 是正确的任务。这正是 API 网关的设计目的。
参见:Using AWS Lambda with Amazon API Gateway - AWS Lambda
或者,您可以使用 Elastic Load Balancer 并让它调用 Lambda 函数。
发件人:Using AWS Lambda with an Application Load Balancer - AWS Lambda
您还提到您有一个“在 2 个 public 子网上”的 AWS Lambda。 AWS Lambda 函数应该不配置为连接到 public 个子网。它们应该配置为使用“无 VPC”(在在这种情况下,他们可以直接访问互联网),或者他们应该连接到私有子网(如果需要,可以使用 NAT 网关或 NAT 实例访问互联网)。
参见:Configuring a Lambda function to access resources in a VPC - AWS Lambda:
Connect your function to private subnets to access private resources. If your function needs internet access, use network address translation (NAT). Connecting a function to a public subnet doesn't give it internet access or a public IP address.