如何自动将 jar 从 s3 部署到 aws lambda?
How to automatically deploy a jar from s3 to aws lambda?
我想在 s3 bucket
中的 jar 版本发生任何变化时自动将 jar 部署到 aws-lamda
。
例如:
有一个 S3 bucket
说 lambdadeploytest
和一个 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 部署。
我想在 s3 bucket
中的 jar 版本发生任何变化时自动将 jar 部署到 aws-lamda
。
例如:
有一个 S3 bucket
说 lambdadeploytest
和一个 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 部署。