aws-code-deploy - CodeDeploy 为下一次部署所需的每个部署创建目录。为什么以及是否有替代方法?
问题描述
我发现 CodeDeploy 正在使用“/opt/codedeploy-agent/deployment-root/#####yourNumberWillBeDifferent#####”处的日志/部署信息填充我的 EC2 实例上的磁盘空间。
每次进行部署时,都会在该位置创建另一个目录,该目录以部署 ID 命名,大约为 650M。该目录包含日志、bundle.tar 和一个部署存档文件夹,其中包含该部署所需的所有文件。经过几次部署后,我注意到我的磁盘空间因此而被用完。仅供参考 - 我正在 EC2 就地实例上执行就地部署。
接下来我发现,当部署运行时,它会在 EC2 实例中查找上一次部署运行的部署目录,并且出于某种原因需要其 AppSpec 文件。我发现这一点是因为如果我删除此目录中的所有部署文件夹,我会收到错误消息 -
''' 修订被解压到目录“/opt/codedeploy-agent/deployment-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deployment-archive”,AppSpec 文件是预期的,但在路径“/opt/codedeploy-agent/deployment-root/59a04892-4afd-4e82-9335-52e8b6047d4b/d-WZDFGDBHU/deployment-archive/appspec.yml”'''
d-WZDFGDBHU 是在刚刚运行的部署之前执行的最后一次部署的部署 ID。
如果我删除除最新目录之外的所有目录(在本例中只保留“d-WZDFGDBHU”),则部署运行良好。
我最终要做的是每小时运行一个脚本,删除该位置的所有目录,除了最新的目录。
我不知道为什么 CodeDeploy 需要引用上次部署的这个目录,但确实如此!
有没有更好的方法来处理这个问题,还是我错误地设置了 CodeDeploy?
解决方案
对于其他遇到这种情况的人-
CodeDeploy 保留许多最后的部署,以允许您回滚到以前的版本。默认情况下,它保留最后 5 个,但这可以使用 codedeploy 代理配置进行配置: https ://docs.aws.amazon.com/codedeploy/latest/userguide/reference-agent-configuration.html
控制这个的设置是 :max_revisions:
推荐阅读
- javascript - 无法读取 null 的属性“长度”-JavaScript
- reactjs - Emotion-Theming 和 Typescript 需要 `theme` 道具
- html - 网络安全字体是否需要购买许可证才能在商业网站上使用?
- angular - 在 python 模式下配置时如何将自定义自动完成列表添加到 CodeMirror?
- r - 当单元格本身包含数据框时,合并 R 中的两个数据框
- azure - Azure 容器实例无法访问 Windows 容器的 Internet?
- c# - 如何保存字符串并在另一个类中使用它?
- javascript - 使用nodejs和post方法将数组保存到文件
- javascript - 我可以用 javascript 修改 PDF 的 Javascript 部分吗
- c# - 如何使用 Moq 为异步函数抛出异常