AWS弹性豆柄-无法用最新的平台或eb upgrade从Ruby2.1克隆到Ruby2.2
我一直在砸我的头。早在5月份,AWS就宣布他们的Ruby弹性环境现在提供Ruby2.2(例如ruby-2.2-(passenger-standalone)或ruby-2.2-(puma))。我无法将现有的ruby-2.1环境升级到ruby-2.2。看来我得重新创造它们了completely...that看起来很傻吗?外面还有人在经历这种事吗?我只是错过了一些简单的东西吗?
额外信息
几个月来,我一直在我的准备和生产环境中愉快地使用ruby-2.1-(passenger-standalone)。现在我想升级到最新的红宝石2.2平台。AWS文档说,这是相当微不足道的,事实上,它们的一些文档甚至似乎表明您可以使用eb clone <env-name> --update。这个标志在我使用的EB CLI 3.4.5中不存在:(另外,web控制台有一个具有最新平台选项菜单项的Clone,但是它被禁用了。
看来,要获得最新的Ruby2.2实例,我所能做的就是从头开始创建一个全新的环境。这太烦人了。
所以我试过的是..。
$ eb status
Environment details for: staging
Application name: xyz
Region: us-west-2
Deployed Version: fbe7
Environment ID: someId
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)
Tier: WebServer-Standard
CNAME: bla.bla.bla.elasticbeanstalk.com
Updated: 2015-06-26 22:48:59.689000+00:00
Status: Ready
Health: Green很好,确认我使用的是Ruby2.1。因此,让我们尝试升级:
$ eb upgrade
Environment already on most recent platform version.好吧,这很好,那么平台本身呢:
$ eb platform select
It appears you are using Ruby. Is this correct?
(y/n): y
Select a platform version.
1) Ruby 2.2 (Puma)
2) Ruby 2.2 (Passenger Standalone)
3) Ruby 2.1 (Puma)
4) Ruby 2.1 (Passenger Standalone)
5) Ruby 2.0 (Puma)
6) Ruby 2.0 (Passenger Standalone)
7) Ruby 1.9.3
(default is 1): 2现在,这里是我的平台设置:
$ eb platform show
Current default platform: Ruby 2.2 (Passenger Standalone)
New environments will be running: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.2 (Passenger Standalone)
Platform info for environment "staging":
Current: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)
Latest: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)因此,新环境将利用Ruby2.2版本。这很好,但是我真的必须放弃我已经配置好的Ruby-2.1版本,而不是新创建的Ruby-2.1版本吗?赶快?
发布于 2016-04-13 13:01:49
通过使用aws cli (而不是eb cli),我找到了一个解决方案:
aws elasticbeanstalk update-environment --solution-stack-name "64bit Amazon Linux 2016.03 v2.1.0 running Ruby 2.3 (Puma)" --environment-name "dev-bg-123456" --region "us-east-1"可以用自制安装aws。
brew install awscli发布于 2015-07-03 21:39:13
我对这一挑战的解决办法是:
在成功启动后,我设置了我的所有环境变量;例如,我的所有数据库、smtp、RAILS_ENV/RACK_ENV等等。然后我转到我以前部署的应用程序,然后简单地将我的最新质量版本部署到全新的环境中。
人们会同意,这比一个简单的eb upgrade要多得多。蹩脚的酱。
发布于 2018-06-27 20:52:16
我找到了解决这个问题的另一种方法。
我使它工作的方式类似于上面的注释,但我成功地更新了现有的豆茎环境,并且没有将代码部署到一个全新的环境中。
我采取了以下步骤:
aws elasticbeanstalk update-environment --region "REGION" --environment-name "ENV_NAME" --solution-stack-name "64bit Amazon Linux 2018.03 v2.8.1 running Ruby 2.3 (Puma)" --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId,Value="ami-
xxxxxxxx"AMI选项--设置是我的关键,因为这帮助我安装了ruby2.3.7的AMI,用于在现有环境中启动新实例。以前,只是打拉尔夫建议的指挥失败,每次尝试。
https://stackoverflow.com/questions/31120676
复制相似问题