相关疑难解决方法(0)

Amazon Web Service CodeDeploy appspec.yml问题

我有一个Node.js应用程序,它使用CodeDeploy AWS部署系统通过Codeship自动部署到Amazon Web Service.

在部署过程中,我在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
Run Code Online (Sandbox Code Playgroud)

但是,在部署期间,我还无法从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
Run Code Online (Sandbox Code Playgroud)

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

除了上面列出的appspec.yml文件,我还尝试进行以下更改:

  • 不列出每个钩子的runas参数
  • 引用已部署目录中的脚本
  • 引用已部署目录之外的脚本
  • 版本参数初始设置为0.0

不幸的是,除了AWS文档之外,appspec.yml故障排除方面的在线数量非常少.

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

continuous-integration yaml continuous-deployment codeship aws-code-deploy

14
推荐指数
2
解决办法
8721
查看次数