gradle - 如何避免 AWS SAM 重建并重新上传代码不变的 gradle 函数?

标签 gradle aws-lambda micronaut aws-sam

我正在开发一个带有 micronaut 的应用程序,使用 SAM CLI 将其部署在 AWS Lambda 上。当我包含依赖项和开发新功能时,函数包变得越来越大(现在它们大约 250MB)。这使得部署需要一段时间。
最重要的是每次我编辑 template.yaml然后运行 ​​sam build && sam deploy在 S3、RDS 等上尝试新配置......我必须等待 gradle 再次构建该功能(即使自上次部署以来它没有改变)并将整个包上传到 S3。
当我尝试在 SAM 上尝试通过多次试验和错误来配置此应用程序时,等待此过程完成只是为了因为某些配置错误而出现错误会适得其反。
此外,我的 SAM s3 bcuket 在一天工作后的大小为 10GB。从长远来看,这可能会变得昂贵。
当函数代码不变时,有没有办法避免那些 gradle 重建和重新上传?

最佳答案

如果您是 仅更新 template.yml 文件 ,您可以将新版本复制到 ./.aws-sam/build folder然后运行 ​​sam deploy

$ cp template.yml ./.aws-sam/build/template.yml
$ sam deploy
如果您是 编辑 lambda 您可以尝试自行更新函数代码(当然是在模板中创建并部署之后)。这可以通过 AWS CLI update-function-code 完成命令:
rm index.zip 
cd lambda 
zip –X –r ../index.zip *
cd .. 
aws lambda update-function-code --function-name MyLambdaFunction --zip-file fileb://index.zip
更多信息可以在这里找到:
  • Alexa Blogs - Publishing Your Skill Code to Lambda via the Command Line Interface
  • AWS CLI Command Reference - lambda - update-function-code

  • my SAM s3 bcuket is at 10GB size


    呵呵。是的,开始删除东西。也许您可以使用 aws s3 编写脚本?

    关于gradle - 如何避免 AWS SAM 重建并重新上传代码不变的 gradle 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63156643/

    相关文章:

    amazon-web-services - 如何使用 node.js 和 aws-sdk 从 lambda 访问 aws 参数存储

    h2 - 如何在浏览器中访问 Micronaut 应用程序创建的 H2 数据库

    java - 如何使用 Android Studio 在 Android 中创建独立库?

    android - 错误 : package android. support.annotation 不存在 - Android 工作室 - Gradle

    node.js - 如何从 aws lambda 读取远程图像文件并返回该图像文件作为响应

    amazon-web-services - 何时使用terraform vs无服务器框架来部署AWS Lambda和周围资源?

    gradle - libgdx SpriteBatch UnsatisfiedLinkError 桌面

    android - 如何使用 Gradle 构建在 Android Studio 中导入 com.google.android.gms.*?

    java - gu 没有这样的文件或目录

    java - 应用程序默认凭据不适用于 mac Google Cloud Storage 中的环境变量设置