【问题标题】:AWS CodePipeline + CodeDeploy + CodeCommit with --file-exists-behavior optionAWS CodePipeline + CodeDeploy + CodeCommit 与 --file-exists-behavior 选项
【发布时间】:2018-03-16 13:19:28
【问题描述】:

我有一个使用 CodePipeline + CodeCommit + CodeDeploy 到 EC2 实例的 CD 工作流程。

除了这个 --file-exists-behavior 选项之外,我还有其他一切工作。如果我从 Aws CLI 或控制台创建部署。部署工作正常。

无论如何我可以将此选项与 CodePipeline 一起使用吗?

如果没有此选项,我仍然会收到错误消息。

The deployment failed because a specified file already exists at this location

【问题讨论】:

标签: amazon-web-services continuous-deployment aws-code-deploy aws-codepipeline aws-codecommit


【解决方案1】:

因此,当您部署时,CodeDeploy 将查找一个文件(在实例上),其中包含有关应用程序/部署组的先前部署文件的信息,如果找到该文件,则使用该文件进行清理(删除) 现有文件,准备复制新的修订文件。

Refer This AWS Documentation

但是如果清理文件不存在,或者是因为现有代码最初以其他方式部署(例如 cloudformation 实例用户数据/元数据源),或者由于某种原因重新创建了 CodeDeploy 部署组,那么清理文件将不存在或与部署组 ID 不匹配。因此它不会运行。因此文件不会被清理,部署会失败,因为 CodeDeploy 不会覆盖文件。

在这种情况下,解决方案可能是有一个钩子(例如 BeforeInstall),它调用脚本来删除实例上的应用程序文件(如果它们存在)。

希望对你有帮助

【讨论】:

  • 是否意味着,如果我使用 CLI 或控制台一次部署文件,我不必担心 --file-exists-behavior 选项?
  • 不,那是用于 CLI 的,在安装之前您仍然需要一个脚本来删除现有文件
猜你喜欢
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 2016-08-25
  • 2020-12-22
  • 2015-10-28
  • 1970-01-01
  • 2019-10-31
相关资源
最近更新 更多