前提・実現したいこと
ruby on railsでアクセサリーの出品、購入が出来るアプリケーションを作成しています。
基本的な機能とビューを作成し、一度デプロイを行った時にはきちんとブラウザ上にアプリが表示されていました。
しかしS3を導入後にデプロイ作業を行ったら正常にデプロイは出来ているのですが、Application errorとなってしまい、アプリが表示されなくなってしまいました。(正常にデプロイ、の定義はherokuでデプロイの履歴を確認してエラーになっていなかったことです。)
発生している問題・エラーメッセージ
アプリのURLに接続すると
Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
となります。
・heroku logsやheroku run rails consoleコマンドで調べたところ、
awsのkey設定でエラーが出ている事がわかりました。
/app/vendor/bundle/ruby/2.5.0/gems/fog-core-2.2.0/lib/fog/core/service.rb:244:in `validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError) ```ここに言語名を入力 Ruby ソースコード ※アスタリスク部分は入力して作業してます。こちらは念のため書き換えました。 ・carrierwave.rb require 'carrierwave/storage/abstract' require 'carrierwave/storage/file' require 'carrierwave/storage/fog' CarrierWave.configure do |config| config.storage = :fog config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: Rails.application.secrets.aws_access_key_id, aws_secret_access_key: Rails.application.secrets.aws_secret_access_key, region: 'ap-northeast-1' } config.fog_directory = '*******' config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/*******' end
・secrets.yml
development:
secret_key_base: *********************
aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
test:
secret_key_base: *********************
Do not keep production secrets in the repository,
instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>
aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>
試したこと
: Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
を調べたところ、heroku側の環境変数の設定が出来ていないという事がわかり
heroku config:set AWS_ACCESS_KEY_ID=
heroku config:set AWS_SECRET_ACCESS_KEY=
コマンドで設定。(ローカルの環境変数は設定してあります)
しかし、エラーが解決されず。
awsのアクセスキー自体が悪い可能性も考え、新しくアクセスキーを作成し、再度
heroku config:set AWS_ACCESS_KEY_ID=
heroku config:set AWS_SECRET_ACCESS_KEY=
コマンドで再設定し、heroku restartで再起動しましたがこれでも解決されず詰まっています。
(ローカルの環境変数も変更してあります)
ここにより詳細な情報を記載してください。
herokuでの環境変数が設定されているかは、heroku configコマンドで調べ、
AWS_ACCESS_KEY_ID:
AWS_SECRET_ACCESS_KEY:
DATABASE_URL:
LANG:
RACK_ENV:
RAILS_ENV:
RAILS_LOG_TO_STDOUT:
RAILS_SERVE_STATIC_FILES:
S3_ACCESS_KEY:
S3_BUCKET:
S3_REGION:
S3_SECRET_KEY:
SECRET_KEY_BASE:
以上の項目が設定されいることを確認しています。
説明不足の場合は申し訳ありません。
わかる方いらっしゃいましたらアドバイスを是非頂きたいです。
何卒宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。