1

Google App EngineでRuby on Railsを使用しています。このチュートリアルはhttps://cloud.google.com/ruby/getting-started/hello-worldです。私は従来のデータベースの代わりにGoogle Datastoreを使用しています。本番環境では、プロジェクトのデータストアに簡単に接続できますが、Google Datastore Emulatorを使用した開発モードでは問題があります。私はデータストアエミュレータをインストールし、提供されたGoogleチュートリアル(https://cloud.google.com/datastore/docs/tools/datastore-emulator)を使用して起動して実行することができました。Ruby on Railsプロジェクト内でGoogle datastoreエミュレータを使用できません

データストアエミュレータを実行してからgcloud beta emulators datastore env-initを実行し、それらの環境変数がmy .bashrcファイル(およびmy .bashrcファイル)にあることを確認します。

私の環境変数は、このような何かを見て:これは「のgcloud」宝石から、次のようなエラーになり

require 'gcloud' 
gcloud = Gcloud.new('my-app') 
dataset = gcloud.datastore 

export DATASTORE_DATASET=my-app 
export DATASTORE_HOST=http://localhost:8473 
export DATASTORE_EMULATOR_HOST=localhost:8473 
export DATASTORE_PROJECT_ID=my-app 

は、その後、私はRailsの中から次の操作を実行してみてください。

RuntimeError: Could not load the default credentials. Browse to 
https://developers.google.com/accounts/docs/application-default-credentials 
for more information 

    from /home/sam/.rvm/gems/ruby-2.2.3/gems/googleauth-0.5.1/lib/googleauth.rb:119:in `get_application_default' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/gcloud-0.7.2/lib/gcloud/credentials.rb:83:in `default' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/gcloud-0.7.2/lib/gcloud/datastore.rb:62:in `datastore' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/gcloud-0.7.2/lib/gcloud.rb:106:in `datastore' 
    from (irb):3 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/commands/console.rb:110:in `start' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/commands/console.rb:9:in `start' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:68:in `console' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
    from /home/sam/.rvm/gems/ruby-2.2.3/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>' 
    from bin/rails:18:in `require' 
    from bin/rails:18:in `<main>' 

データを使用する場合はキーファイルは必要ありませんでしたエミュレータを磨く。キーファイルが必要な場合は、ローカルデータストアエミュレータに接続できるようにするにはどうすればよいですか?データストアエミュレータのドキュメントには、これがまったく必要であることは言及されておらず、単に環境変数を設定するだけで、ローカルクライアントが自動的に接続するのに十分であるはずです。

お知らせください!

答えて

2

私は実際にデータストアエミュレータに接続するためにルビーを入手することができていないものの、よりよい解決策はここで説明しているようだ:https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/610

更新:エミュレータ接続が機能していない私の部分に簡単なエラーによるものでした、これを行う方法の良いガイドについてはリンクされたスレッドを参照してください

関連する問題