每个构建工件都是 39MB,每次我提交构建时,它都会将另一个 39MB 的工件添加到 codepipeline S3 存储桶中。有没有办法自动删除旧工件?
答案1
您可以使用 S3 生命周期策略来自动使旧对象过期:http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
选择到期时间时需要记住两件事:
- CodeDeploy 等部署提供商可能需要访问旧版本来扩展或回滚
- 您的管道可能需要几天或几周才能运行,具体取决于其配置方式
只要您定期部署,那么选择一个月左右的到期时间就没问题。
如果您的管道很少运行,那么根据年龄使对象过期可能会更加困难,因为您可能会使仍然有效的版本过期。
答案2
您真的需要保留旧的构建工件吗?
如果您正在构建 lambda,一旦创建了该函数,lambda 就会保留其自己的部署包副本,以便您可以将其从工件存储桶中完全删除(您甚至可以使用“导出函数”菜单从 lambda 中检索副本)
警告:这是基于我自己使用 nodejs 的经验。我在文档中找不到任何可以保证这一点的内容,但 lambda 允许您下载包,并且不存储对原始构建工件的引用这一事实似乎支持了这一点。