0
1

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 3 years have passed since last update.

本番環境(EC2)でYoutubeのAPI keyが読み込めない問題

Last updated at Posted at 2021-04-23

##エラー内容

/production.log

Caught error forbidden: The request is missing a valid API key.
 Error - #<Google::Apis::ClientError: forbidden: The request is missing a valid API key.>

ローカル環境ではdotenv-railsを使い、.envファイルの中に環境変数を定義してapiキーを管理していました。それがうまく読み込めずエラーになっているようです。

##解決方法
###①credentials.ymlにapi keyを定義する

EDITOR="vi" bin/rails credentials:edit

./credentials.yml

youtube:
  GOOGLE_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxx

credentials.yml.encの中身は暗号化されているのでmaster.keyを使って施錠してあげる必要があります。

※シンボルの後は半角スペースを開けないとうまく保存できないので注意してください。


###②本番環境(EC2内)にRAILS_MASTER_KEY環境変数を定義する credentials.yml.encを読み込むためにEC2内にmaster.keyを設定します。

./ec2-user

まずはmaster.keyを設定するファイルの作成

sudo vim /etc/environment

master.keyを定義します
./environment

RAILS_MASTER_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxx

###③コントローラーでapi kyeを読み込む

Rails.application.credentials[:キー]
でcredentials.yml.encを呼び込めます。

 GOOGLE_API_KEY = Rails.application.credentials.youtube[:GOOGLE_API_KEY]

うまく表示されました!


チーム開発でのデプロイで注意すべき3つのポイント

0
1
1

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?