前提・実現したいこと
AWSでの本番環境でgoogle translate apiを使えるようにしたい。
発生している問題・エラーメッセージ
現在 ruby on rails にてアプリケーションの開発をしています。
アプリの中でgoogle translate apiをつかって翻訳機能の実装を行い、ローカル環境では実際に動作はするのですが、本番環境にデプロイし本番環境で確認すると、
ActionView::Template::Error (Could not load the default credentials. Browse to
https://developers.google.com/accounts/docs/application-default-credentials
というエラーが返ってきました。
APIの叩き方として
https://note.com/hikkymouse_pro/n/n55736c4662caを参考に行いました。
JSONファイルをダウンロードしてAPIを叩いてる???感じです。
(初学者であまり理解できていません、申し訳ないです。)
該当のソースコード
google_cloud.jsonというファイルに private_key_id": "プライベートキー", "private_key": "-----BEGIN PRIVATE KEY-----\ "client_email": "client_id": "auth_uri": "token_uri": "auth_provider_x509_cert_url": "client_x509_cert_url":
などの情報が入っています。
それを
posts_helper.rbというファイルで呼び出し
ruby:posts_helper.rb
1 2 3module PostsHelper 4 5 def translator(text) 6 project_id = ENV["CLOUD_PROJECT_ID"] 7 translate = Google::Cloud::Translate.new version: :v2, project_id: project_id 8 if text =~ /(?:\p{Hiragana}|\p{Katakana}|[一-龠々])/ 9 @text = text 10 target = "en" 11 @translation = translate.translate @text, to: target 12 else 13 @text = text 14 target = "ja" 15 @translation = translate.translate @text, to: target 16 17 end 18 19 end 20end
このようなメソッドを作成し翻訳しております。
local_env.ファイルの中身
yml
1 2 3CLOUD_PROJECT_ID: 'プロジェクトID' 4GOOGLE_APPLICATION_CREDENTIALS: 'config/google_cloud.json'
試したこと
いろいろな記事をみさせていただいてターミナルで
環境変数を設定してみたりしたのですが、エラー解決することができませんでした。
補足情報(FW/ツールのバージョンなど)
'rails', '~> 6.0.0'
デプロイ環境 AWS
あなたの回答
tips
プレビュー