RailsにDotenvを導入!環境変数を管理しよう! #rubybg


DotenvというGemを導入すると、Gitのリポジトリには含めたくないパスワードや外部APIの情報を環境変数として扱えます。

https://github.com/bkeepers/dotenv

Dotenvで何ができる?

データベースの認証情報や外部サービスの資格情報等の、開発環境間で変更される可能性のあるものは、コードから環境変数に設定しておくとセキュリティ的にも良いとされています。

ただ、複数のプロジェクトが実行されている開発マシンやサーバーに環境変数を設定することは運用が大変です。
dotenvを導入すると .env のファイルからENVに環境変数をロードできるようになります。

The Twelve-Factor App
環境によって変わる情報を環境変数として保存することは、Webアプリケーションの開発において便利でスケールしやすい方法論として公開されている「The twelve-factor App」でも紹介されている方法です。

環境

Rails 5.0.1

インストール

Gemfileに下記を追加します。

$ gem 'dotenv-rails', require: 'dotenv/rails-now'

インストールします。

$ bundle install --path vendor/bundle --jobs=4

「–jobs=4」をオプションとして指定すると並列処理でインストールが行われるので高速です。

.evn を作成

.env ファイルを新規作成します。

$ vi .env

適当な環境変数を設定します。

HOGE="fuga"

コンソールを起動して、呼び出せるか確認してみましょう。

$ bundle exec rails c                                                                  [1] pry(main)> Dotenv.load
=> {"HOGE"=>"fuga"}
[2] pry(main)> puts ENV['HOGE']
fuga
=> nil

Dotenv.load を実行してからでないと、ENVで環境変数にはアクセスできないので、そこだけ注意です。
あとは、Gitの管理外になるように .gitignore.evn を追加すれば完了です。

これで、環境によって変わる設定を安全に取り扱うことができます。


AWS が学べるオンライン講座

オンライン講座なら、好きな場所で好きな時間に学習できます。AWS も学ぶことができるので、ぜひ、活用しましょう。

Udemy(ユーデミー)

オンライン動画学習サイトで、AWS講座もあります。頻繁に講座のバーゲンセールスが実施されているので、価格をチェックしましょう!購入した動画は繰り返し使えますので何度でも学習可!
世界最大級のオンライン学習サイトUdemy


RaiseTech(ライズテック)

RaiseTechは最速で「稼げる」エンジニアになるための、実践的なWebエンジニアリングスクール。AWSフルコース、AWS自動化コースとAWS講座が充実!
【RaiseTech】最速で稼げるプロになるエンジニアリングスクール