如何在ELB上设置和更新ruby版本?
我已经在我们的qa上使用ruby 2.2.2
并且已经使用env's大约8个月了。我刚刚设置我们的生产env星期一,它不会部署,因为它说ruby设置为2.2.3,我的gemfile说2.2.2。我更新并重新部署,一切似乎都很好。
我回到了qa / staging env,无法让它更新为ruby 2.2.3。保持说ruby版本是2.2.2而Gemfile是2.2.3
我升级了(通过elb ui):
64bit Amazon Linux 2015.03 v1.3.1 running Ruby 2.2 (Passenger Standalone)
到
64bit Amazon Linux 2015.09 v2.0.6 running Ruby 2.2 (Passenger Standalone)
现在它说Your Ruby version is 2.2.3, but your Gemfile specified 2.2.2
。必须有一种更简单的方法来做到这一点。
答案 0 :(得分:11)
由于您希望同时更新平台和版本标签,因此始终可以使用UpdateEnvironment API指定解决方案堆栈名称和版本标签参数。
http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html
您可以使用aws cli或sdk来执行此操作。
aws elasticbeanstalk update-environment --environment-name "corresponding_env_name" --solution-stack-name "64bit Amazon Linux 2015.09 v2.0.6 running Ruby 2.2 (Passenger Standalone)" --version-label "zip_name_you_uploaded"
答案 1 :(得分:1)
我找到了解决此问题的另一种方法。
我的工作方式与上面的评论类似,只是做了一点改动。
我执行的步骤:
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选项设置对我来说很关键,因为这帮助我安装了ruby 2.3.7的AMI,该Ruby用于在现有环境中启动新实例。 以前,每次尝试仅击中@Rohit Banga条建议的命令都会失败。
别忘了,我还在Gemfile中也指定了ruby版本“ 2.3.7”。