Amazon web services 有没有办法让github PR合并触发EC2实例启动?
每当我们在github中合并拉请求时,我们都试图启动一个EC2实例 我在crontab有这个Amazon web services 有没有办法让github PR合并触发EC2实例启动?,amazon-web-services,github,Amazon Web Services,Github,每当我们在github中合并拉请求时,我们都试图启动一个EC2实例 我在crontab有这个 @reboot /home/user/server-start.sh 当实例启动时,它完成了我希望发生的一切(比如git pull origin master),并且该脚本运行良好 我已经看过AWS CodeDeploy,但我看不到一种只打开一个实例的方法(该服务器通常会关闭,它只需要在合并PR时打开并执行一些操作,然后再次关闭) 我不确定最好的方法是什么,所以任何指针都会很好 以下是启动脚本和ngi
@reboot /home/user/server-start.sh
当实例启动时,它完成了我希望发生的一切(比如git pull origin master),并且该脚本运行良好
我已经看过AWS CodeDeploy,但我看不到一种只打开一个实例的方法(该服务器通常会关闭,它只需要在合并PR时打开并执行一些操作,然后再次关闭)
我不确定最好的方法是什么,所以任何指针都会很好
以下是启动脚本和nginx服务器配置文件,以防它们有所帮助
/home/user/server-startup.sh
#!/bin/bash
# get latest master branch
cd /path/to/repo
sudo git pull origin master
# run standard preparation script
sudo bash /home/user/scripts/prepare-app.sh
# run any custom commands for this update
sudo bash /path/to/repo/prepare-app.sh
# change http code to 200
sudo sed -i -e 's/return 500/return 200/g' /etc/nginx/sites-available/status
# restart nginx
sudo service nginx restart
# change http code to 500
sudo sed -i -e 's/return 200/return 500/g' /etc/nginx/sites-available/status
/etc/nginx/现场可用/状态
server {
listen 80 default_server;
server_name status.mydomain.com;
location / {
return 500;
}
}
如果实例刚刚停止,而不是终止,则可以使用AWS CLI启动实例:
aws ec2 start-instances --instance-ids i-1348636c
文件:
此代码可能由git挂钩触发:
脚本的其余部分将仅在实例完成启动后运行,因此需要对服务器进行某种健康检查
你也可以考虑CI /CD工具,如果你想要一个更易于管理的东西,比如Brime/CoDeSIP.
它是什么类型的应用程序?它是SyfYNY2REST API。这看起来像是要走的路,因为我可以在服务器上创建一个执行AWS工具命令的端点。