如何自动将s3的jar部署到AWS Lambda?

时间:2018-12-24 09:51:35

标签: java amazon-s3 aws-lambda aws-code-deploy aws-codepipeline

只要aws-lamda中的jar版本发生任何更改,我都希望自动将jar部署到s3 bucket

例如: 有一个S3 bucketlambdadeploytest和一个Lamda function名称autoDeployTest。我已经在test.jar中存储了一个对象lambdadeploytest

只要有我上传对象test.jar的新版本test.jar就会自动部署autoDeployTest lambda功能。

2 个答案:

答案 0 :(得分:2)

您可以使用lambda函数来实现...
概括而言,步骤是

  • 创建一个lambda函数,该函数将下载test.jar并使用jar创建/更新autoDeployTest lambda函数。

  • 配置在test.jar在S3上被修改时触发的新lambda函数

  • 配置具有权限的新lambda函数以读取S3存储桶并在Lambda上部署代码。

您可以按照this tutorial创建由S3事件触发的lambda函数。 This is the Lambda API您的lambda函数可以调用以更新autodeployTest代码。

伪代码如下:

read JSON event object to get the bucket name and object name (bucket_name, test.jar)

download a copy of the object (test.jar) to the lambda container 

(do additional check on the jar file if required) 

call Lambda's UpdateFunctionCode to update autoDeployTest function code with the jar.

答案 1 :(得分:1)

最惯用的方法是将新的JAR文件上传到S3之后触发部署。 Lambda本身不会为您处理此事,除非您计划为此目的使用另一个Lambda(我个人不会)。

我不清楚您用于上传JAR文件的内容-例如Terraform,那是要走的路。如果您使用AWS CLI上传了新版本的JAR文件,则可以使用同一工具来触发Lambda部署。