AWS CodeDeploy失败:部署失败,因为此位置已存在指定的文件

Lon*_*275 12 amazon-ec2 amazon-web-services aws-code-deploy

我正在尝试使用Github设置AWS Code部署以自动化我的部署.我遇到的问题是ec2实例已经处于活动状态并且具有Web应用程序代码.问题是在源代码控制下我还不想要实例上的其他内容.代码部署失败,出现以下错误:

The deployment failed because a specified file already exists at this location
Run Code Online (Sandbox Code Playgroud)

这是因为源代码位于实例上,并未添加为修订版.

所以我的问题是,是否有任何方法可以使代码部署将实例上的当前文件识别为初始修订版?

Sei*_*zel 14

这个有可能!这是部署期间的一个选项:"内容选项:选择在部署期间,当目标实例上的文件与应用程序修订中的文件同名时,AWS CodeDeploy要对同一目标位置执行的操作."

您可以选择失败,覆盖和保留.保留可能是您的最佳选择.

您可以找到更多信息

  • 如果使用 CodePipeline,则无法在部署操作中设置此选项。但由于 5 月份的最新更新,您现在可以在 appspec.yml 中使用 `file_exists_behavior: OVERWRITE` 来强制执行此行为,而不是按照 https://github.com/aws/aws-codedeploy-agent/issues/14 (3认同)

zaw*_*tut 14

这是我的示例 appspec.yml

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/wordpress/
    overwrite: true
file_exists_behavior: OVERWRITE
Run Code Online (Sandbox Code Playgroud)

这是更新后的 AWS 用户指南 AppSpec“文件”部分(仅限 EC2/本地部署)。在那里你会发现三个选项:DISALLOW、OVERWRITE 和 RETAIN。