Heroku の環境変数の管理

matsuo
3 min readDec 14, 2018

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日目でした。

--

--