使多个AWS Lambda消耗外部(EC2)Postgres的最佳实践是什么

时间:2018-09-27 18:23:22

标签: amazon-web-services amazon-ec2 aws-lambda

我在AWS API上有+100个端点,每个端点都调用一个特定的Lambda脚本,该脚本连接到外部Postgres数据库,并获取数据并返回。

我的问题是,如果我这样做,则需要100个Lambdas脚本,每个脚本中都需要包含连接详细信息作为环境变量?

那可能不是做到这一点的方式……在一个地方进行管理的最佳方法是什么,例如可以访问所有lambda的全局环境变量?

另一件事是,每个Lambda打开连接也很糟糕,是否有一种方法可以管理可以在其他Lambda之间共享的连接池?

反正有分组吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

存储供Lambda函数之类的AWS服务访问的秘密配置的推荐方法是Secrets Manager。您将连接详细信息存储为密钥,并在每个Lambda功能代码中根据需要从秘密管理器服务中加载值。

Lambda函数是有意隔离的,因此无法在不同函数之间共享连接或其他资源。有时您可以在同一功能的连续调用之间共享资源,但是您不能依赖于此,对于数据库连接之类的东西,这甚至不是一个好用例。相反,您应该尝试尽可能紧凑地打开和关闭连接,以便其他函数调用可以访问数据库的连接池。