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」に追加して下さい。
4, 読み込み方法
プログラムファイルで環境変数を読み込むには、パッケージ「os」が必要です。
下記を参考に記述してください。
# 環境変数「ADDLESS」を読み込む
import os
ADDLESS = os.environ['ADDLESS']
print("アドレス:", ADDLESS)
>> アドレス: abc-def@gmail.com
おわりに
Herokuにおける環境変数の設定・読み込み方法を紹介しました。
開発物を公開したくても、プログラムに個人情報等が含まれていること、ありますよね?
そんな時の回避方法として役立てて頂ければ幸いです。