我正在考虑将自定义托管的Rails应用迁移到Elastic Beanstalk。
我创建了一个简单的Rails应用程序并设法将其部署到Elastic beanstalk上。还有一些我还没有做到的事情:
亚马逊有这个文件(link),但它似乎已被弃用,我无法确定如何在当前版本上进行此操作
elad:...$ eb --version
EB CLI 3.7 (Python 2.7.1)
答案 0 :(得分:2)
我不确定我的解决方案是否是最佳做法,我只是在这里展示,欢迎所有评论。
- 如何将分支或特定代码部署到我的应用程序?
醇>
- 部署的版本是上次提交还是我当前的工作区?
醇>
3.在Beanstalk上处理部署时的最佳做法是什么?
我的解决方案#1:定义将部署到特定环境的分支
在.elasticbeanstalk/config.yml
# .....
branch-defaults:
develop:
environment: mercury-dev-staging
master:
environment: mercury-dev
# .....
依靠此配置,我总是切换到develop
分支以部署到mercury-dev-staging
env,master
分配到mercury-dev
。这样可以避免将develop
分支部署到生产环境
我的解决方案#2:定义一些别名命令以便快速部署:
在~/.bash_profile
(我使用MacOS)
alias deploy_production="eb deploy mercury-dev;"
alias deploy_staging="eb deploy mercury-dev-staging;"
现在我只需键入deploy_staging
进行暂存部署,这很方便但有风险,因为您可以将开发功能部署到生产中。
答案 1 :(得分:0)
考虑选择的人可以看看AWS Code Pipeline。您定义特定的 GitHub 存储库分支。如果您将更改推送到该分支,Code Pipeline 会检测到它并启动管道流程。
这与 Elastic Beanstalk 相关,因为在 Code Pipeline 的第 4 步,您可以部署到 AWS Elastic Beanstalk(以及其他)。