pka*_*mol 5 amazon-web-services aws-code-deploy aws-codepipeline
我正在通过CodeDeploy.logstash 配置在目标实例中进行部署/etc/logstash/。
这是 3 阶段的最后一步CodePipeline。
但是它失败并显示消息
部署失败,因为此位置已存在指定文件:/etc/logstash/pipelines.yml
如何指示CodeDeploy覆盖文件?
2022 年 3 月更新:以下是有关如何处理文件存在行为的文档:AppSpec“文件”部分。
2021 年 7 月更新:看来 AWS 终于承认了这一缺陷 - 请在此处查找所有相关更新。
2020 年 8 月答案:我发现覆盖文件的唯一方法是在创建新部署时选择覆盖或保留,如此处所示。在其他地方您不会看到这些设置。如果我没记错的话,这是唯一的方法,因为 CLI 不支持它。
添加覆盖选项的问题已在GitHub上公开 ,并且已经存在很长一段时间了。我通过在 BeforeInstallation 挂钩中添加自定义脚本解决了这个问题,该脚本将在复制新部署之前删除所有现有文件。
这就是我的 appspec.yml 文件的样子
version: 0.0
os: linux
files:
- source: /
destination: /path/to/destination
hooks:
BeforeInstall:
- location: DeploymentScripts/CleanupScript.sh
AfterInstall:
- location: DeploymentScripts/InstallScript.sh
timeout: 600
ApplicationStart:
- location: DeploymentScripts/RestartScript.sh
timeout: 3600
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9304 次 |
| 最近记录: |