我如何利用AWS :: Serverless :: LayerVersion以便在我的AWS Lambda函数中使用外部库-AWS SAM [GoLang]

时间:2019-05-17 09:30:25

标签: amazon-web-services aws-lambda serverless-framework aws-sam-cli

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

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

1 个答案:

答案 0 :(得分:0)

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

  

AWS Lambda层:

     

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

以下是使用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

请在以下链接上进一步阅读