VPC 中的 Lambda - 如何设置网络

问题描述 投票:0回答:1

概述

我有以下网络配置(我以牺牲正确性为代价简化了它以证明我的观点)。

我的申请要求

  • 我的 lambda 是一个需要通过 http(s) 调用的 API。它使用 lambda API 网关进行设置
  • 它需要连接到私有子网中的RDS
  • 它需要调用互联网和外部API

我的问题

1,如果我将 lambda 放在私有子网中

  • 它将能够拨打互联网电话
  • 它将不能能够通过互联网被调用
  • 它将能够连接到RDS

2,如果我将 lambda 放在公共子网中。

  • 它将不能能够拨打互联网电话
  • 可以通过互联网调用
  • 它将能够连接到RDS

3,如果我不将 lambda 放入 VPC,它无法连接到 RDS。

  • 它将能够拨打互联网电话
  • 可以通过互联网调用
  • 它将无法能够连接到RDS

其他

我正在使用 terraform 来设置我的基础设施,因此我更喜欢使用 terraform 的答案和示例,但当然欢迎所有输入。

amazon-web-services aws-lambda terraform aws-api-gateway vpc
1个回答
0
投票

如果我将 lambda 放在私有子网中,

  • 它将不能能够通过互联网被调用

这是不正确的。 Lambda 函数永远不会闲置以侦听请求。 AWS Lambda 函数本身从不直接接收传入的网络流量。 Lambda 函数是使用事件负载调用的一段代码。您可以通过附加的安全组阻止与 Lambda 函数的所有入站网络连接,并且您仍然能够毫无问题地调用 Lambda 函数,因为 Lambda 函数从不直接接收入站网络请求。

公共 AWS API 或 API 网关是公共 Internet 上可用的服务,用于侦听网络请求。这些服务根据这些请求构建事件负载,然后使用该事件负载调用您的 Lambda 函数。

将 Lambda 函数部署到私有子网中是此处的正确配置。 AWS API Gateway 将能够接收公共网络请求,并创建将在您的私有子网中运行的 Lambda 函数的调用。

© www.soinside.com 2019 - 2024. All rights reserved.