Cream-Kuchen

Herokuで環境変数の設定と読み込み

はじめに

Herokuで環境変数を設定し、プログラムで読み込むにはどうしたらよいのでしょう?

その目的や方法を紹介します。

目次


1, 環境変数とは

ここでは、プログラムファイルにベタ書きせず、外部からwebアプリに設定する変数とします。

2, 設定する目的

なぜ環境変数を設定するのでしょうか?下記の理由があげられます。

  • メールアドレスやパスワードなど、プログラムファイルに記述したくない個人情報等を守るため

  • Chrome driverなど参照するバージョンが不定期に変わるが、プログラムを修正せずにwebアプリの運用を継続するため

    【具体例】
    Gitで管理をしているプログラムをHerokuでwebアプリとして運用する事例を考えます。
    パスワードなど公開したくない情報は .gitignore でファイルをuploadせずに済みますよね。
    ですが、それをHerokuにデプロイしても ignore した情報が取得できずエラーが起きます。
    それを防ぐために、外部からwebアプリに環境変数を設定する方法がとられます。


3, 設定方法

3-1, 設定方法(CLI)

下記の大括弧 [ ] を書き換えることで設定できます。

heroku config:set -a [webアプリ名] [環境変数名]="[設定したい環境変数]"

    【具体例】

config:set -a myapp ADDLESS="abc-def@gmail.com"



また、同時に複数設定する場合、半角スペース空けて環境変数を追記するだけです。

heroku config:set -a [webアプリ名] [環境変数名1]="[設定したい環境変数1]" [環境変数名2]="[設定したい環境変数2]"

    【具体例】

heroku config:set -a myapp ADDLESS="abc-def@gmail.com" PASSWORD="password"


3-2, 設定方法(webページ)

Herokuのwebアプリ管理ページにアクセスし、タブ「Settings」の行「Config Vars」に追加して下さい。

f:id:Cream-Kuchen:20200607134750p:plain

4, 読み込み方法

プログラムファイルで環境変数を読み込むには、パッケージ「os」が必要です。

下記を参考に記述してください。

# 環境変数「ADDLESS」を読み込む
import os
ADDLESS = os.environ['ADDLESS']
print("アドレス:", ADDLESS)
    
>> アドレス: abc-def@gmail.com


おわりに

Herokuにおける環境変数の設定・読み込み方法を紹介しました。

開発物を公開したくても、プログラムに個人情報等が含まれていること、ありますよね?

そんな時の回避方法として役立てて頂ければ幸いです。