如何避免 AWS SAM 使用未更改的代码重建和重新上传 gradle 函数?
How to avoid AWS SAM rebuild and reupload a gradle function with unchanged code?
我正在开发一个带有 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
?
编写脚本
我正在开发一个带有 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
?