(Rails5.2)APIキーを直接コードに埋め込まないCredentials.yml.encの使い方

公開日:2019-01-12
最終更新:2019-01-12

Rails5.2から追加された credentials.yml.enc のキホン - Qiita
これを参考に作業を進めていく。

環境

  • Windows 10
  • ruby 2.4.5
  • rails 5.2.1
  • PowerShell

エディタの指定

エディタを指定せずに編集を試みる

PS C:\work\rails-app\translator> rails credentials:edit  

No $EDITOR to open file in. Assign one like this:  

EDITOR="mate --wait" bin/rails credentials:edit  

For editors that fork and exit immediately, it's important to pass a wait flag,  
otherwise the credentials will be saved immediately with no chance to edit.

やっぱりあかん。
Sublime Textを使いたい。
Gitを導入したときにPATHを通したのか知らないけど、sublでSublime Textが起動する。
ということで。

PS C:\work\rails-app\translator> rails credentials:edit EDITOR="subl"  

C:/work/rails-app/translator/vendor/bundle/ruby/2.4.0/gems/thor-0.20.3/lib/thor/base.rb:506:in `handle_argument_error': ERROR: "rails edit" was called with arguments ["EDITOR=subl"] (Thor::InvocationError)

あかん。
どうすれば・・・

Rails 5.2 Credentials : rails

Do you possibly have EDITOR set to editor by chance? Or a string that starts with it like editor hotdogs!? The message you are receiving is what you’d expect to see if you tried executing editor from the command line. You can see your current env vars by executing env: take a look at what may already be set there.

The easiest way to set an env var in Windows is using the GUI. I usually just type env in the start menu, and select Edit environment variables for your account. You can also select the system env vars, depending on how saucy you feel (and your environment in general).

In the GUI, select New and name it EDITOR and for the value, use the Browse File mechanism to find your favorite editor. Some small changes you will want (need) to make: Your editor probably has a “Wait for the file to close before returning” option. This waits for you to actually edit and save the file, instead of immediately resuming. You probably also need to wrap the command in “s (but not the flags). It’s much easier if you happen to have your editor on your path.

As an example, mine would look like this:

“%PROGRAMFILES%\Sublime Text 3\subl.exe” -w -n

どうもWindowsのGUIを使って環境変数を設定すると良いとのこと。
「ここに入力して検索」欄にenvと打つと「システム環境変数の編集」というものが出てくる。
それを開いて、「環境変数(N)…」ボタンをクリック。
ユーザー環境変数のところで「新規(N)…」をクリック。

変数名=EDITOR  
変数値="%PROGRAMFILES%\Sublime Text 3\subl.exe" -w -n

これで設定してあげると

PS C:\work\rails-app\translator> rails credentials:edit

でSublime Textが立ち上がった。
どうも-nは新規ウィンドウで立ち上げるオプションっぽいので、-nを除いて再設定すると、すでに開いているウィンドウに新しいタブとしてcredentials.yml.encが開いた。

APIキーをcredentials.yml.encの中に書いて、実際の処理で取り出す。

rails credentials:editをした後で

api_key:  
  google: {APIkey}  
  bing: {APIkey}  
  watson: {APIkey}  
  yandex: {APIkey}  

# 取り出し方  
# google_api_key = Rails.application.credentials.api_key[:google]  
# bing_api_key = Rails.application.credentials.api_key[:bing]  
# watson_api_key = Rails.application.credentials.api_key[:watson]  
# yandex_api_key = Rails.application.credentials.api_key[:yandex]

本番環境にアップしてもちゃんと動いた。
この後で各APIキーを新しいものに更新しておいた。
やったね。

記事が少しでもいいなと思ったらクラップを送ってみよう!
2
+1
@WEkFtOQhlqcyDEsyの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする