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

Java 如何在Amazon Lambda中提供数据库凭据等配置参数?,java,aws-lambda,Java,Aws Lambda,如何向Java AWS Lambda函数提供配置参数(如数据库凭据) 我是否应该简单地将它们存储在属性文件中并从jar加载它们?如果是这样,我如何区分开发配置和运行时配置?根据您尝试访问的系统以及保存凭据的安全性,有几个选项可用 最重要的是,如果在Lambda函数中需要AWS凭据,则应该使用AWS角色。这意味着您不需要硬编码凭证,只需使用AWS客户端库进行调用,它就可以工作了 如果需要获取其他机密或配置,可以将它们存储在DynamoDB或S3中。您将使用AWS角色授予读取此信息的权限。如果安全性

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


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

根据您尝试访问的系统以及保存凭据的安全性,有几个选项可用

最重要的是,如果在Lambda函数中需要AWS凭据,则应该使用AWS角色。这意味着您不需要硬编码凭证,只需使用AWS客户端库进行调用,它就可以工作了

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

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