如何自动将 jar 从 s3 部署到 aws lambda?

How to automatically deploy a jar from s3 to aws lambda?

我想在 s3 bucket 中的 jar 版本发生任何变化时自动将 jar 部署到 aws-lamda

例如: 有一个 S3 bucketlambdadeploytest 和一个 Lamda function 名字 autoDeployTest。我在 lambdadeploytest.

中存储了一个对象 test.jar

每当我上传对象test.jar的新版本时,test.jar将自动部署autoDeployTest lambda 函数。

您可以使用 lambda 函数来实现...
在高层次上,步骤是

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

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

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

您可以按照 this tutorial to create a lambda function that would be triggered by S3 events. 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.

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

我不清楚您使用什么来上传 JAR 文件 - 如果它是Terraform,那将是要走的路。如果您使用 AWS CLI 上传了新版本的 JAR 文件,您可以坚持使用相同的工具来触发 Lambda 部署。