部署后的AWS Code Pipeline运行命令

时间:2018-11-02 21:09:33

标签: amazon-web-services

我已经设置了一个AWS Pipeline,该管道可以自动从S3存储桶中获取我的代码,进行构建并将其部署到EC2实例。我现在想自动运行一些shell命令(例如:启动python脚本)。如何将其集成到管道中?

1 个答案:

答案 0 :(得分:1)

如果您正在使用代码部署,则答案在您的appspec.yml文件中,该文件可在部署中的某些生命周期挂钩处执行命令。

我猜您想要“ ApplicationStart”钩子。您可以通过添加如下部分来使用钩子:

hooks:
  BeforeInstall:
    - location: Scripts/UnzipResourceBundle.sh
    - location: Scripts/UnzipDataBundle.sh
  AfterInstall:
    - location: Scripts/RunResourceTests.sh
      timeout: 180
  ApplicationStart:
    - location: Scripts/RunFunctionalTests.sh
      timeout: 3600
  ValidateService:
    - location: Scripts/MonitorService.sh
      timeout: 3600
      runas: codedeployuser

AWS文档中的代码示例:https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-example.html

几乎所有的部署程序代理都会在给定的生命周期挂钩中运行“位置”子句中的命令。如您所见,代码部署文档中还完整记录了其他选项。

如果您将CodePipeline与某些备用部署代理一起使用,最好的选择是询问有关该部署代理的问题或查看其文档。管道仅协调代码存储库,构建代理和部署代理。它实际上并不会执行部署本身或执行部署命令。