Heroku Advent Calendar 2018 の 14日目です。
Heroku での環境変数の管理って、みなさんどうされていますか。
ブラウザでポチポチ変更するのも面倒だし、個人的には、なかなかこれだ!としっくりきた方法がないのですが、今やっているのはこんな感じです。
dotenv 的にファイルを用意する
rails とか Laravel とかだと、.env
ファイルで 変数名=値
の形で環境変数を管理していることが多いと思います。
そんな感じで Heroku用の環境変数設定ファイルを、たとえば .env.heroku
みたいな名前で用意し、
APP_NAME=example
DEBUG=false
USER=foobar
のように変数と値を記述して保管しておきます。
Heroku に一括で設定する
で、これを Heroku にまとめて設定したい場合、
heroku config:set -a example `cat .env.heroku`
ファイルの内容を cat で出力しつつ、 heroku config:set
コマンドに渡してやります。こうすると、複数の環境変数も一発で登録できます。
ポチポチ 1変数ずつ設定するよりはだいぶ楽できますね。
すでに設定済みのHerokuの環境変数を取得する
すでに Heroku で環境変数を設定済みで、その変数一覧を取得したい場合。
ふつうに heroku config
コマンドを実行すると、
=== example Config Vars
APP_NAME: example
DEBUG: false
USER: foobar
このような出力です。
ここに -s
オプションをつけると出力形式が変わりまして、
APP_NAME=example
DEBUG=false
USER=foobar
こうなります。
これは、さきほどの config:set
の入力にそのまんま使える形式ですね。ありがてえありがてえ。
もっとしっかり管理したければ
Terraform あたりのツールを使う感じになるんでしょうか……? (ちょっと実際に試せてはいないですが、環境変数に限らずきっちり管理できそうすね)
以上、小ネタではありますが、Heroku Advent Calendar 2018 の 14日目でした。