是否可以通过 AWS lambda 连接到本地机器上托管的数据库

Nim*_*kku 5 aws-lambda

我在 AWS 中启动了一个 RDS 实例、s3 和 EC2,它使用 lambda 正确触发。现在我希望将 RDS 和 EC2 从 AWS 更改为本地机器。我的 lambda 是从 s3 触发的。

如何在 AWS 中通过 lambda 连接本地数据库?

Joh*_*ein 5

看来你的要求是:

  • 您希望运行 AWS Lambda 函数
  • 在该函数中,您希望连接到在您自己的计算机上运行的数据库(AWS 之外)

首先,我不推荐这种策略。为了保持良好的性能,您应该始终让应用程序尽可能靠近数据库。这意味着在同一个网络上,在同一个位置,而不是通过远程网络连接或 Internet。

但是,如果您想这样做,那么您需要执行以下操作:

  • 您的数据库需要可在 Internet 上访问,以便您可以远程连接到它。要对此进行测试,请尝试从 Amazon EC2 实例访问它。
  • AWS lambda表达式应该或者不VPC连接进行配置(这意味着它是连接到互联网),或者,如果您已经为VPC连接配置它,它需要与NAT网关实现互联网接入的专用子网。
  • (可选)为了增加安全性,您可以锁定数据库以仅接受来自已知 IP 地址的连接。为此,您需要使用 VPC + NAT 网关,以便所有流量都来自分配给 NAT 网关的弹性 IP 地址。


All*_*ate 0

我同意 John Rotenstein 的观点,即将本地计算机连接到在 AWS 上运行的 Lambda 可能是一个坏主意。

如果您的目的是在本地开发或测试,我推荐无服务器框架和无服务器离线插件。它将允许您在本地模拟 Lambda,并且您可以将数据库配置值作为环境变量传递。

请参阅:本地运行 AWS Lambda 和 API Gateway:serverless-offline