我已经设置了一个AWS管道,它自动从一个S3桶中获取我的代码,构建它并将它部署到EC2实例中。现在我想自动运行一些shell命令(例如:启动python脚本)。我怎样才能把它整合到管道中呢?
发布于 2018-11-02 21:17:32
如果您使用的是代码部署,答案是在您的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: codedeployuserAWS的代码示例:https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-example.html
部署程序代理将在给定的生命周期钩子中运行"location“子句中的命令。正如您所看到的,还有其他选项在代码部署文档中有完整的文档记录。
如果您将CodePipeline与其他部署代理一起使用,最好的选择是询问有关该部署代理的问题或查看它们的文档。管道只协调代码回购、构建代理和部署代理。它实际上不执行部署本身或执行部署命令。
https://stackoverflow.com/questions/53125850
复制相似问题