Play framework の設定ファイルで環境変数を読み込む
最近 Play framework で Web アプリケーションを作成していますが、その中で設定ファイル (conf/application.conf
など) の中で環境変数を読み込みたい場面がありました。例えば、OAuth 認証を使って twitter などのアプリケーションとの連携をする場合に、設定ファイルに直接 consumer key を記述するのははばかれるので、『環境変数に設定しておきそれを読み込む』といった感じです。
やり方
play framework のドキュメント にやり方が書いてありました :-)
具体的には application.conf
の中で以下のように環境変数を ${? }
で囲ってあげると良いようです。 (ENV_VARIABLE
が環境変数です。)
hoge=${?ENV_VARIABLE}
あとは、下記のように環境変数を設定しておくと読み込むことが出来ました。
$ export ENV_VARIABLE=jojo
ちなみに application.conf
内で include
したファイル内でも正しく環境変数を読み込むことができました。
こうすることによって、git
などでバージョン管理下にあるファイルでもコミットしたくない情報を隠すことが出来ます。
Heroku にデプロイする場合
以下のように Heroku での環境変数を設定してあげると、ちゃんと動きました。
$ heroku config:add ENV_VARIABLE=jojo
ちなみに application.conf
内で ${ENV_VARIABLE}
のように ?
を抜かしてもローカル環境では動きましたが、Heroku では上手く動きませんでした。 (詳しい方、教えていただけると幸いです)