java - 从 Eclipse 使用资源文件夹部署 AWS Lambda 函数时出现问题

标签 java eclipse amazon-web-services maven aws-lambda

我在 AWS 部署 AWS Java Lambda 函数的方式上遇到问题。我有一个 Eclipse Maven 项目,我将其作为 Lambda 函数部署到 AWS。

这是我的结构:

enter image description here

资源中,有一个表单文件夹,其中包含我需要加载的PDF文件。我可以通过以下方式在本地完成此操作:

ClassLoader classLoader = getClass().getClassLoader();
URL url =  classLoader.getResource( "forms/myform.pdf" );

但是,这仅在本地有效,部署到 AWS 时无效。以下是部署到 AWS 时文件夹结构的样子。

enter image description here

因此,我必须将代码更改为以下内容才能使其正常工作。

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/

相关文章:

java - 是否可以在Eclipse中设置一个子包作为源DISPLAY的根?

amazon-web-services - SQS 消息的可见性超时结束后,在哪里再次可见?

amazon-web-services - 在 AWS EC2 上挂载 NVME 磁盘

java - 我怎样才能获取这个工作代码并使其使用java泛型?

java - 使用 [datafx] 中的 JdbcSourceReader 未在 TableView 中加载数据

c++ - 在 centos eclipse 符号 'XXX' 无法解决多个错误

java - Eclipse:上下文菜单

java - 关于 Java Sound API 的一些问题

java - 为什么放置 start() 命令时会有所不同?

mysql - 如何应对SQL Server上的多AZ RDS MySQL?