環境変数をHerokuに設定した話
はじめに
前回の記事でAPIの変更を行なったRailsアプリがHerokuではerror
を出していたので、それについて問題解決をしてRailsアプリを動く状態にした。
daily-weather-app.herokuapp.com
status=500 errorについて
ローカルではしっかり動いたrailsアプリがHerokuにあげて動作させるとエラーを出したのでサーバーログを見ることに。
$heroku logs --tail
サーバーのログをみながらアプリの方を動かしていたら検索ボタンを押してAPIリクエストをするタイミングでステータス500エラーが出ていることに気づいた。 ここから考えられるエラーの理由は私の中では以下の3パターンです。
データベース関連の問題について
データベース関連の問題については私の場合、アプリ側でデータを追加する操作をしていないためサーバー側に重要なデータがないので、全てリセットして再構築することにしました。
ENVを用いた環境変数がHeroku側でうまく適応できていない
データベース関連については片づいたはずなのにうまく起動しなかったため更にステータス500のみのエラーログについて考えることにしました。
ステータス500エラーというのは、"サーバー側のプログラムが実行できているがアクセスに失敗している状態"の事で、それについて思い当たる節を考えていった結果、環境変数をENVで定義している事でした。
なのでHeroku側にも環境変数を登録してあげれば動くのではないかと考え設定しみました。
- Herokuサイトで該当アプリのプロフィールを見る
- settingのConfig Varsを開くと登録できる
設定すると無事動きました。
参考サイト - Herokuで本番環境の環境変数(config vars)を.envファイルで設定する
終わりに
ENVを使った影響で本番環境が動いていないということに気づくまで結構長い時間詰んでたので、うまく動いてくれて安心しています。