【发布时间】:2020-02-29 11:05:45
【问题描述】:
我对 AWS lambda 和 SAM 比较陌生,现在我已经开始工作了,但我有一个看似简单的问题却找不到答案。
上周我使用 SAM 启动并运行了一个 lambda 应用程序(构建、打包、部署多次,直到它工作)。
问题
所以现在我用来上传的 S3 存储桶有许多(大约 100 个)以前上传的(由sam package)我的压缩代码的版本。
问题
- 您如何识别哪些压缩包是当前的(即由当前函数和/或层使用),并删除所有旧的过时的包?
- 在 SAM(命令行选项或模板文件中)有没有办法
让它自动删除旧版本的包,当你
'
sam package' 上传新版本? - AWS 控制台中是否有某个地方可以找到当前函数或层正在使用的存储桶中哪个 zip 文件的密钥? (我试图到处找到它,但无法设法......很容易获得 ARN,但不是你的存储桶中映射到的实际 URI)
轻微并发症
在我用来存储 lambda 包的存储桶中,我还有一个自定义层。
因此,如果只是应用程序包,我可以轻松(现在)进入并删除存储桶中的所有内容,然后重新构建/打包/部署以清理它。 ...但这也会删除我的图层(并且 - 同样的问题 - 我现在确定该图层正在使用存储桶中的哪个 zip 文件)。
但是这种方法无论如何都不会长期有效,因为我计划将大约 10-15 个不同的包/功能放在一起,所以当只更新其中一个时删除存储桶中的所有内容是行不通的。
感谢您的任何想法、想法和帮助!
【问题讨论】:
标签: aws-lambda aws-sam-cli aws-sam