AWS CodePipeline + CodeDeploy + CodeCommit,带有--file-exists-behavior选项

时间:2017-10-05 02:13:59

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

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

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

无论如何我可以在CodePipeline中使用此选项吗?

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

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

1 个答案:

答案 0 :(得分:0)

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

Refer This AWS Documentation

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

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

希望这有帮助