gpt4 book ai didi

continuous-integration - Amazon Web Service CodeDeploy appspec.yml 问题

转载 作者:行者123 更新时间:2023-12-03 21:03:59 24 4
gpt4 key购买 nike

我有一个 Node.js 应用程序 正在自动部署到亚马逊网络服务 通过Codeship使用 CodeDeploy AWS部署系统 .

在部署过程中,我在我的 中设置了appspec.yml 用于停止当前正在运行的 Web 应用程序。部署完成后,我希望再次启动 Web 应用程序。

os: linux
files:
- source: /
destination: /var/www/app2
hooks:
AfterInstall:
- location: bash_scripts/stop_forever.sh
runas: ec2-user
ApplicationStart:
- location: bash_scripts/start_forever.sh
runas: ec2-user

但是,我还不能在部署期间从 appspec.yml 文件中成功调用这些脚本中的任何一个。

我在 AWS 部署代理日志中看到的当前错误是
Error CodeScriptMissing
Script Name /var/scripts/stop_forever.sh
MessageScript does not exist at specified location: /var/scripts/stop_forever.sh
Log TailLifecycleEvent - ApplicationStop

这似乎指的是旧版本的 appspec.yml 文件,它试图在不同的位置运行这些脚本。即使我更改了已部署包中 appspec.yml 文件的内容,此错误消息在每次部署时都保持不变。

除了上面列出的 appspec.yml 文件之外,我还尝试进行以下更改:
  • 未列出 运行 每个钩子(Hook)的参数
  • 引用部署目录中的脚本
  • 引用部署目录外的脚本
  • 拥有 版本 参数最初设置为 0.0

  • 不幸的是,除了 AWS documentation 之外,关于 appspec.yml 故障排除的在线信息很少。 .

    我做错了什么非常明显的事情?

    最佳答案

    ApplicationStop在尝试运行当前部署之前,正在从先前安装的部署中调用 Hook appspec.yml文件。

    为了防止这种情况发生,您必须从服务器中删除任何以前安装的部署。

  • 停止代码部署代理 - sudo service codedeploy-agent stop
  • 清除 /opt/codedeploy-agent/deployment-root 下的所有部署
  • 重启代码部署代理 - sudo service codedeploy-agent start
  • 关于continuous-integration - Amazon Web Service CodeDeploy appspec.yml 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27923991/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com