我在 AWS 部署 AWS Java Lambda 函数的方式上遇到问题。我有一个 Eclipse Maven 项目,我将其作为 Lambda 函数部署到 AWS。
这是我的结构:
在资源
中,有一个表单文件夹,其中包含我需要加载的PDF文件。我可以通过以下方式在本地完成此操作:
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "forms/myform.pdf" );
但是,这仅在本地有效,部署到 AWS 时无效。以下是部署到 AWS 时文件夹结构的样子。
因此,我必须将代码更改为以下内容才能使其正常工作。
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "./resources/forms/myform.pdf" );
如何让它在本地和 AWS 中工作?在 AWS 上运行与在本地运行时,我可以拥有该位置的属性文件,但我试图避免拥有类似的东西。
为了部署到 AWS,我只是遵循他们的 documentation on deploying lambda functions with the Eclipse toolkit 。我还问了一个similar questio关于这一点,我认为这是我在本地运行它的方式的问题。但现在我发现这与它的部署方式有关。
关于如何让它在本地或 AWS 上运行有什么想法吗?有没有办法更改AWS工具包以不同的方式部署资源?
最佳答案
我发现我可以更改 Maven 项目的资源:
<resources>
<resource>
<directory>src/main</directory>
<filtering>false</filtering>
</resource>
</resources>
然后我可以在本地和 AWS 中引用相同的路径:
ClassLoader classLoader = getClass().getClassLoader();
URL url = classLoader.getResource( "./resources/forms/myform.pdf" );
关于java - 从 Eclipse 使用资源文件夹部署 AWS Lambda 函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273407/