只要aws-lamda
中的jar版本发生任何更改,我都希望自动将jar部署到s3 bucket
。
例如:
有一个S3 bucket
说lambdadeploytest
和一个Lamda function
名称autoDeployTest
。我已经在test.jar
中存储了一个对象lambdadeploytest
。
只要有我上传对象test.jar
的新版本,test.jar
就会自动部署到autoDeployTest
lambda功能。
答案 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部署。