1

Google App Engine ile Ruby on Rails kullanıyorum, ör. Bu eğitici: https://cloud.google.com/ruby/getting-started/hello-world. Geleneksel bir veritabanı yerine Google Datastore kullanıyorum. Üretim için, projemin veri deposuna kolayca bağlanabiliyorum, ancak Google Datastore Emulator kullanan geliştirme modu bir sorunu kanıtlıyor. Datastore Emulator uygulamasını kurdum ve sağladığınız google eğiticisini (https://cloud.google.com/datastore/docs/tools/datastore-emulator) kullanarak çalıştırabilirim.Google datastore emülatörünü Ruby on Rails projesinden kullanamazsınız

Veri deposu öykünücüsünü çalıştırıyorum, daha sonra gcloud beta emulators datastore env-init çalıştırın ve bu ortam değişkenlerinin .bashrc dosyasında olduğundan emin olun (ve kaynak .bashrc dosyam).

Benim ortam değişkenleri şuna benzer: Bu 'gcloud' mücevher dan aşağıdaki hatası

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 

Sonra Raylar içinden aşağıdakileri deneyin:

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>' 

Verileri kullanırsam bir anahtar sözcüğe gerek duymadığım izlenim altındaydım öfke emülatörü. Bir anahtarile ihtiyacım varsa, yerel veri deposu öykünücüsüne bağlanmama izin verecek bir tane nasıl oluşturabilirim? Veri deposu öykünücüsü dökümantasyonu bunun gerekliliğinden bahsetmiyor ve yalnızca ortam değişkenlerinin yerinde olması yerel istemcilerin otomatik olarak bağlanması için yeterli olabileceğini gösteriyor gibi görünüyor.

Lütfen tavsiye!

Aslında veri deposu emülatörü bağlanmak için yakut almak edemedik iken

cevap

2

, daha iyi bir çözüm burada özetlenen gibi görünüyor: benim parçası basit bir hata nedeniyle oldu çalışma emülatör bağlantısı olmayan: https://github.com/GoogleCloudPlatform/gcloud-ruby/issues/610

güncelleme , bu

nasıl yapılacağı hakkında iyi bir kılavuz için bağlantılı konuya bakın