如何从 AWS lambda java 中的类路径加载 属性 文件

How to load property file from classpath in AWS lambda java

我已经编写了 AWS lambda 函数,因为我想从 属性 文件中读取数据库连接详细信息,并且在我的类路径中,但我无法加载 file.Here 是我的代码:

InputStream input = DBConfiguartion.class.getResourceAsStream("appsettings");

        Reader r = new InputStreamReader(input, "UTF-8");
        Properties prop = new Properties();
        prop.load(r);

如果我 运行 这段代码通过正常的 java 控制台应用程序运行,但每当我 运行 它作为 AWS lambda 函数时 InputStream 即将变为空。

你只差一个角色。这是一个我必须做同样事情的工作示例:

InputStream is = DBConfiguartion.class.getResourceAsStream("/lambda.properties");
Properties properties = new Properties();
properties.load(is);

这在构建部署 jar 时适用于以下 maven 文件结构:

  • 项目
  • project/src/main/java
  • project/src/main/java/com/something/DBConfiguartion.java -
  • project/src/main/resources
  • project/src/main/resources/lambda.properties

如要加载属性文件,可以使用 ResourceBundle 加载属性。

String version = ResourceBundle.getBundle("lambda").getString("version");

这与作为 InputStream 加载文件不同,但这对我有用。在 Maven 项目中,文件需要位于:

  • project/src/main/resources/lambda.属性

我有一个简单的 Hello-World Lambda,它从 github 上的属性文件中读取当前版本。