5

Rails 4.1.1 と Ruby 2.0.0 を使用しています

現在、github の gitignore に対して secrets.yml ファイルを無視しています。

secrets.yml

development:
  secret_key_base: numb3r57ndl3tt3r5

test:
  secret_key_base: differentnumbersandletters13531515

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE'] %>

この製品キーが動的である場合、どこから読み取られますか? その情報はどこで提供されますか? その情報は、github にアクセスせずに heroku にどのように到達しますか?

heroku アプリの設定に、既に秘密鍵環境変数があります。heroku_secrets gem https://github.com/alexpeattie/heroku_secretsを使ってレーキコメントを実行したときに作成されたと思いますrake heroku:secrets RAILS_ENV=production

秘密鍵を公開せずに secrets.yml を適切に利用する方法の概念的な手順と実際の手順を誰かが説明できますか?

たとえば、別の API に別の秘密鍵を追加することもできれば、それも大歓迎です。

「こうしろ、こうしろ、こうしろ」というよりも、説明の段階で何が起きているのかを理解したい。また、コードがある場合は、単にコードを与えるのではなく、どのファイルに配置するかを指定してください。読者はコードだけに基づいてどこに行くかを知っていると仮定します(herokuガイドライターを厳しく見てください

ありがとう!=]

4

2 に答える 2

5

この鍵を使えば<%= ENV["SECRET_KEY_BASE'] %>

ローカル マシンでは、(bash または zsh) などのシェルで環境変数を設定できます。

export SECRET_KEY_BASE="yourkeybasehere"

そして、次のように本番環境で実行することをシミュレートします(ただし、ローカルマシンで)

RAILS_ENV=production rails s

heroku config:setただし、Heroku にデプロイすると、アプリのコマンドを実行することで、config vars と呼ばれるものを使用できます。

heroku config:set SECRET_KEY_BASE=yourkeybasehere

次に、Rails アプリはこの構成変数を secret.yml に入力します。

production:
  secret_key_base: yourkeybasehere

これがあなたが理解する必要があることを説明することを願っています.

ただし、プレイしてテストしたい場合。1 つのオプションは、app/views/layouts/application.html.erb ファイルを編集して、表示する構成変数を配置しようとすることです。たとえば、USERNAME 構成変数です。

<!DOCTYPE html>
<html>
<head>
  <title><%= ENV['USERNAME'] %></title>
</head>
<body>

<%= yield %>

</body>
</html>

次に、herokuにデプロイして実行します

heroku config:set USERNAME=gwho

ページ タイトルに「gwho」が表示されます。

Heroku 構成変数の詳細: https://devcenter.heroku.com/articles/config-vars

Rails 4.1 secrets.yml の詳細: http://edgeguides.rubyonrails.org/4_1_release_notes.html#config/secrets.yml

于 2014-07-29T02:46:30.163 に答える