21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RUNTEQAdvent Calendar 2021

Day 24

【Rails】環境変数使うならHeroku側にも設定しないと当然エラーが出る件

Last updated at Posted at 2021-12-23

はじめに

転職のためプログラミングを勉強し始めて約4ヶ月が経ちました。
現在、Ruby on Railsを使用して音声の感情を判定するポートフォリオを製作しています。
API利用で音声をpostしてレスポンスをもらうコードをHerokuに反映させたときのエラーについて記事に残したいと思います。

結論先に

ローカルでAPIキーを環境変数に設定した場合、
Heroku側にも設定しなければならない

エラーまでの経緯

今回使用したいAPIは一日の利用回数限度が設定されていた。
ポートフォリオで使うにはもう少し上限を上げたいと思い、開発企業側にコンタクトをとってみる。
幸い上限枠の拡張を快く了承してくれ、専用のAPIキーを発行してくれた。

このAPIキーをGitに晒すのは良くないので、
dotenvを使用して環境変数とすることに。

dotenvの公式資料はこちら↓
https://github.com/bkeepers/dotenv

.envファイルにAPIキーを定義して

.env
API_KEY = '***********'

Railsのコントローラーで使う

hogehoge_controller
#~省略
key = ENV['API_KEY']
#~省略

Gitに晒したくないので、
.gitignoreファイルへ/.envを記載する【※重要】

.gitignore
/.env

rails sで確認、問題なし。
git pushして
herokuにもpush。

heroku openでArgumenterror

APIを利用する箇所でエラーが出てしまった。
アレコレ考えているうちに、『そういやHerokuってGitの情報を元にしてるから環境変数知らんやん』
と気づきました。

Heroku側で設定を追加する

ということで解決までの流れです。
コマンドのみで操作して解決できる方法もあるのですが、
Herokuのどの部分に書くのかな〜と見ながら進めたいと思ったので
アナログにHerokuにログインして進めました。

まずはHerokuにログインして、該当のアプリを開く
上部にメニューがあるので『Settings』を選択
Image from Gyazo
上から2番目くらいにConfig Varsという項目があるので『Reveal Config Vars』を押下
Image from Gyazo
Config Varsが表示されているはず。
左枠にKEY、右枠にValueを入れることができます。
Image from Gyazo
今回はこの様に記載する
Image from Gyazo
Addを押下して完了!
一応Heroku再起動のコマンドを叩きました

heroku restart

ちなみに、.envファイルに書いたみたいに
Value枠に'***********'←の''シングルコーテーションをつけちゃうとダメだったのでお気をつけて・・・

21
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?