我需要使用位于本地文件系统上的外部库才能成功执行Lambda函数。使用AWS SAM框架,我发现可以通过指定AWS::Serverless::LayerVersion资源来完成。

我不确定这是如何工作的,以及如何指定外部库的路径。我是否首先需要将外部库部署到S3存储桶?

最佳答案

您需要在AWS Lambda图层部分的图层上部署jar

AWS Lambda层:
您可以配置Lambda函数以拉入
分层形式的其他代码和内容。一层是ZIP
包含库,自定义运行时或其他内容的存档
依赖性。通过图层,您可以在函数中使用库
无需将它们包含在您的部署包中。


https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

以下是使用AWS Lambda层的步骤

编写Lambda图层代码
包Lambda层
部署Lambda层
附加一层功能调用方法
验证结果

完成编写函数后,请确保pom.xml包含工件和maven-shade-plugin

<groupId>java-lambda-layer</groupId>
<artifactId>java-lambda-layer</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

运行Maven
 mvnclean install and package

请进一步阅读以下链接

https://medium.com/@zeebaig/working-with-aws-lambda-layers-ddf5c91674d3

08-07 13:59