【问题标题】:Elastic Beanstalk migration fail for RubyRuby 的 Elastic Beanstalk 迁移失败
【发布时间】:2015-07-29 05:39:40
【问题描述】:

网站上的错误信息

An unhandled lowlevel error occured. The application logs may have details.

退出是

=== puma startup: 2015-05-17 16:26:01 +0000 ===
=== puma startup: 2015-05-17 16:26:01 +0000 ===
[3112] - Worker 0 (pid: 3150) booted, phase: 0
2015-05-17 17:31:54 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:31:54 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:35:47 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/configuration.rb:51:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:507:in `handle_request'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:375:in `process_client'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/server.rb:262:in `block in run'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/puma-2.11.2/lib/puma/thread_pool.rb:104:in `block in spawn_thread'
2015-05-17 17:35:47 +0000: Rack app error: #<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:462:in `validate_secret_key_config!'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:195:in `env_config'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/engine.rb:510:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/railties-4.1.8/lib/rails/application.rb:144:in `call

但我不相信 secret_key_base 丢失了。我用实际的生产密钥切换了 ENV[:secret_key_base]。如果我转到我的 secret.yml 文件,它以纯文本形式存在。

我正在运行 nginx 和 puma。

可能的错误可能是因为生产 secret_key_base 与部署的不同?在部署 eb 后,我做了一个 rake secret。我将尝试删除 eb 实例并重做它。也许这将解决问题。

我感谢任何其他建议

【问题讨论】:

  • 几个问题:这行得通吗?你是如何设置环境的? (它抱怨生产环境)。您是否尝试添加几个调试语句来验证您所做的假设?
  • 这在本地工作。我可以访问我的本地主机。它从未在 aws 实例上工作过。在 aws 上运行时是否可以放置调试器?

标签: ruby-on-rails ruby amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

secrets.yml 未上传到服务器。您需要在 Elastic Beanstalk 控制台中设置您的机密。

进入环境,然后在侧边栏中选择Configuration,选择Software Configuration旁边的齿轮图标,然后添加你的密钥,大概是列表底部的secret_key_base,点击+,然后选择Apply,您的环境应该会更新。

我建议您在添加密钥后重新启动。如有必要,重新部署最新版本,它应该会成功迁移。

旁注(关于调试器): 您可以通过 SSH-ing 进入服务器来获取 Rails 控制台。

  1. 在 Rails 项目目录中执行 eb ssh
  2. 执行sudo su - 以获得root 访问权限。
  3. 执行cd /var/app/current 进入Rails 项目目录。
  4. 执行 bundle exec rails consolerails c(取决于版本)以获取 Rails 控制台。

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 2020-10-08
    • 2019-09-16
    • 2020-09-21
    • 2017-08-03
    • 2021-06-08
    • 2021-08-15
    • 2021-02-03
    • 2020-10-10
    相关资源
    最近更新 更多