AWS CodeDeploy后如何自动重启节点应用

时间:2019-09-25 09:26:12

标签: node.js travis-ci aws-code-deploy

我有安装travis来为节点应用程序aws codeDeploy。现在可以将最新代码正确部署到EC2,但是我需要再次手动重新启动节点应用程序才能使更改生效。

如何在codeDeploy之后自动重启节点应用程序?我想我可以通过在appspec.yml中设置afterInstall来做到这一点,但是我发现许多教程/演练都没有提到这一点,所以我想知道这是重启节点应用程序的唯一/最佳方法。

2 个答案:

答案 0 :(得分:0)

您应该使用appspec.yml中的ApplicationStart挂钩。从AWS文档:

  

安装后–您可以将此部署生命周期事件用于配置应用程序或更改文件权限之类的任务。

     

ApplicationStart –您通常使用此部署生命周期事件来重新启动在ApplicationStop期间停止的服务。

答案 1 :(得分:0)

您可以使用pm2或永久使用它,并且可以在代码部署后重新启动节点。您的appspec.yml应该如下所示

version: 0.0
os: linux
files:
  - source: /deployment.zip
    destination: /home/ubuntu/PorjDir/
hooks:
  BeforeInstall:
    - location: stop_server.sh
      timeout: 300
      runas: ubuntu
  AfterInstall:
    - location: start_server.sh
      timeout: 300
      runas: ubuntu

注意:您需要在项目中创建stop_server.sh和start_server.sh,并且需要将其导出为工件,以便代码部署代理可以使用它。

start_server.sh应该包含以下内容:

sudo /usr/bin/pm2 restart appname

希望这对您有帮助!