初めての投稿で緊張しておりますが、ようやくエラー解除できたので、共有します!
rails5.2で作成したアプリケーションをHerokuへアップロードする際に出たエラーです。
エラーの主な原因としてAWSのS3機能とRails5.2以上から登場したCredentialの機能をHerokuに上手く設定できなかったことが原因みたい。
(具体的な内容)
Herokuにアップロードし、heroku openをすると
こちらのエラーが出てきてなかなか開けません。
ですので、heroku run rails cでエラーの内容を確認すると、以下のエラー内容が表示されます。(Aws::Sigv4::Errors::MissingCredentialsError)
missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider
- access_key_id and secret_access_key
- credentials
- credentials_provider
のうちいずれかが上手く設定できていないみたい。
$ rails c
irb(main):001:0> Rails.application.credentials.secret_key_base
=>nil
ここが設定できていないのが原因のようだ
ここで同じような原因で悩む記事を発見しました!
rails エラー
(Aws::Sigv4::Errors::MissingCredentialsError)がわかりません。
こちらの方はHerokuのssettingからConfig Varsに
・AWS_ACCESS_KEY_ID
・AWS_SECRET_ACCESS_KEY
・AWS_DEFAULT_REGION
を設定したところ解決できたようです。
エラーが起こっているherokuに上げているアプリケーションのSetting(鍵マーク)→Config Varsを選択します。
こちらを参考に、
Config Varsのより
KEYにそれぞれ
・AWS_ACCESS_KEY_ID
・AWS_SECRET_ACCESS_KEY
・AWS_DEFAULT_REGIONを設定し、VALUEにIAMから作成したシークレットキーとシークレットアクセスキー、リージョン(たぶん東京の人が多いはず)を入力していきます。
その後、
$ heroku run rails c
Running rails c on ⬢ herokuapplication2020... up, run.3100 (Free)
Loading production environment (Rails 5.2.4.1)
irb(main):001:0>
エラーが出ない!嬉しい限りです。
そして、、、
$ heroku open
▸ Error opening web browser.
▸ Error: Exited with code 3
▸
▸ Manually visit https://herokuapplication.herokuapp.com/ in your
▸ browser.
Herokuにアクセスできるようになった!
以上より解決👏👏👏
Herokuに上げた後に直接環境変数を記述するのは初めてだったので、戸惑いましたが、なんとか完了!ターミナルからも本来はできると思うので、ここらへんの知識をもっと勉強しなくてはなりません。💦