у меня есть ключ api в bin / secrets. Как героку его найти? - PullRequest
0 голосов
/ 05 августа 2020

Я недавно работал с api и, имея в виду безопасность, поместил его в файл bin/rails secrets. У меня это указано ниже, например,

development:
  google_api_key: abcd1234
production:
  google_api_key: abcd1234

Однако, когда я отправляю sh все на heroku, я получаю ошибки приложения. Когда я смотрю журналы, я вижу.

2020-08-04T22:34:28.529917+00:00 app[web.1]: /app/config/environment.rb:5:in `<top (required)>'
2020-08-04T22:34:28.529918+00:00 app[web.1]: config.ru:3:in `require_relative'
2020-08-04T22:34:28.529918+00:00 app[web.1]: config.ru:3:in `block in <main>'
2020-08-04T22:34:29.113486+00:00 heroku[web.1]: Process exited with status 1
2020-08-04T22:34:29.152963+00:00 heroku[web.1]: State changed from starting to crashed
2020-08-04T22:34:29.605524+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=downtown-inventory-app.herokuapp.com request_id=1a1f61ec-458d-46c7-ada0-38ff05280586 fwd="107.77.206.194" dyno= connect= service= status=503 bytes= protocol=https
2020-08-04T22:34:30.628910+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=downtown-inventory-app.herokuapp.com request_id=d65ed41c-368e-451b-b70f-480b160e4c45 fwd="107.77.206.194" dyno= connect= service= status=503 bytes= protocol=https
2020-08-04T22:37:15.442465+00:00 app[api]: Set RAILS_MASTER_KEY config vars by user email@gmail.com
2020-08-04T22:37:15.442465+00:00 app[api]: Release v77 created by user email@gmail.com
2020-08-04T22:37:15.616389+00:00 heroku[web.1]: State changed from crashed to starting
2020-08-04T22:37:20.612387+00:00 heroku[web.1]: Starting process with command `bundle exec puma -C config/puma.rb`
2020-08-04T22:37:22.765114+00:00 app[web.1]: Puma starting in single mode...
2020-08-04T22:37:22.765140+00:00 app[web.1]: * Version 3.12.6 (ruby 2.5.8-p224), codename: Llamas in Pajamas
2020-08-04T22:37:22.765143+00:00 app[web.1]: * Min threads: 5, max threads: 5
2020-08-04T22:37:22.765147+00:00 app[web.1]: * Environment: production
2020-08-04T22:37:26.041214+00:00 app[web.1]: ! Unable to load application: ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
2020-08-04T22:37:26.041370+00:00 app[web.1]: bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.5.0/bin/puma)
2020-08-04T22:37:26.041449+00:00 app[web.1]: ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
2020-08-04T22:37:26.041494+00:00 app[web.1]: /app/config/environment.rb:5:in `<top (required)>'

Мне кажется, что самые важные ошибки в журналах - это

Unable to load application: ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage

и

ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage

Я также см. /app/config/environment.rb:5 в журналах, а это

# Load the Rails application.
require_relative 'application'

# Initialize the Rails application.
Rails.application.initialize!

Я (молюсь), чтобы у кого-то еще были идеи о том, что я могу здесь сделать? Я новичок в развертывании приложений на heroku, поэтому я не уверен, что здесь делать.

1 Ответ

0 голосов
/ 09 августа 2020

Вы должны установить эти ключи на heroku:

heroku config:set GITHUB_USERNAME=joesmith

В этом случае GITHUB_USERNAME - это установленная переменная, и вы должны использовать ее в своем коде, чтобы heroku знал, что следует вставить.

heroku docs: «Конфигурация и переменные конфигурации»

ruby руководства: «Как использовать переменные среды в Ruby»


Я также нашел это руководство:

блог arkency: «Как безопасно хранить ключи API в приложениях Rails»

...