如何使用AWS lambdas与不同的数据库进行通信取决于客户



我有一个特定的案例,每个客户都需要一个单独的数据库(带有MySQL的AWS RDS实例(。我想写一个基于lambdas的后端。我在如何使用一个API网关或AppSync对许多数据库使用特定的lambda方面遇到了很大的困难。

完美的方式是:

  • 前端向API网关或AppSync发出请求。请求标头包含有关特定客户的信息
  • API网关或AppSync使用特定客户的数据库环境调用适当的lambda

我知道以上方式是不可能的。Lambda无法按需改变其环境。我考虑为每个客户在不同阶段多次部署一个lambda。在这种方法中,我需要在解析器中调用不同的lambda,这取决于包含特定客户信息的请求头。

我对这种方式感到不高兴,但我看不出有什么不同的可能性来实现我的目标。有可能以一种不同的、更有效的方式来实现它吗?在这种情况下,可能存在任何良好的做法
我将感谢你的帮助和建议。

您可以通过将各种用户与给定租户关联起来,并从Parameter Store或Secrets Manager中查找该租户的数据库详细信息,从而使Lambda函数成为多租户函数,而不是使用给定数据库的环境变量预配置Lambda函数。

此外,请注意RDS Proxy,它在构建多租户无服务器解决方案时会有很大帮助(此处讨论(。

最新更新