質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

842閲覧

Google translate API AWS デプロイ エラー

AndyAndy

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/09/13 08:26

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2020/09/13 18:26

デプロイはどのように行いましたか? google_cloud.jsonとlocal_env.ymlがちゃんとAWS(EC2ですかね?)上にあるかが気になります。
AndyAndy

2020/09/14 09:46

awsにてcapistranoで自動デプロイしています。 おそらくEC2上にないのでこのエラーが出ていると思っていまして、どうやってEC2上にあげるのかわかりません。無知で申し訳ありません。
AndyAndy

2020/09/27 09:35

自己解決できました。deploy.rbに set :linked_files, fetch(:linked_files, []).push('config/google_cloud.json') desc 'upload google_cloud.json' task :upload do on roles(:app) do |host| if test "[ ! -d #{shared_path}/config ]" execute "mkdir -p #{shared_path}/config" end upload!('config/google_cloud.json',"#{shared_path}/config/google_cloud.json") end を記述し、自動デプロイする度にjsonファイルがuploadされるように設定しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問