如何在Amazon Lambda中提供数据库凭据等配置参数?

时间:2016-03-08 22:31:20

标签: java aws-lambda

如何向Java AWS Lambda函数提供数据库凭据等配置参数?

我应该只将它们存储在属性文件中并从jar中加载它们吗?如果是这样,我如何区分开发和运行时配置?

1 个答案:

答案 0 :(得分:3)

有多种选择可供选择,具体取决于您尝试访问的系统以及保存凭据所需的安全性。

最重要的事情是,如果您需要在Lambda函数中使用AWS凭据,那么您应该使用AWS角色。这意味着您不需要硬编码凭证,只需使用AWS客户端库进行调用即可。

如果您需要引入其他机密或配置,可以将它们存储在DynamoDB或S3中。您可以使用AWS角色授予访问权限以读取此信息。如果安全性非常重要,您可以使用KMS加密此信息,以增加安全层。如果您正在从S3或DynamoDB读取数据,我建议您将其缓存一段适当的时间(Lambda函数的生命周期是一个不错的选择,因为根据我的经验,实例往往不会超过15分钟)以避免不必要的请求到DynamoDB或S3。

当谈到区分它所处环境的代码时,我假设您正在讨论单独的Lambda函数。为此,您可以将环境分配烘焙到您构建的工件中,或者您可以让代码查看Lambda函数的名称以确定它所处的环境。