如何从 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 上的属性文件中读取当前版本。
我已经编写了 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 上的属性文件中读取当前版本。