2

WindowsマシンにローカルのGoogleデータベースエミュレータを作成しました。私はエミュレータを実行すると、私は次のような出力が得られます。ローカルデータストアに接続できません

C:\Users\susan\AppData\Local\Google\Cloud SDK>gcloud beta emulators datastore start --project=susantestproject 
WARNING: Reusing existing data in [C:\Users\susan\AppData\Roaming\gcloud\emulators\datastore]. 
Executing: cmd /c C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\gcd.cmd start --host=localhost --port=8578 --store_on_disk=True --consistency=0.9 --allow_remote_shutdown C:\Users\susan\AppData\Roaming\gcloud\emulators\datastore 
[datastore] API endpoint: http://localhost:8578/datastore 
[datastore] If you are using a library that supports the DATASTORE_LOCAL_HOST environment variable, run: 
[datastore] 
[datastore] export DATASTORE_LOCAL_HOST=localhost:8578 
[datastore] 
[datastore] Invoking dev_appserver with args: [--disable_update_check --jvm_flag=-Doauth.is_admin=true --property=datastore.index_configuration_format=yaml --port=8578 --address=localhost --property=datastore.force_is_high_replication=true --property=datastore.default_high_rep_job_policy_unapplied_job_pct=10.0 --allow_remote_shutdown C:\Users\susan\AppData\Roaming\gcloud\emulators\datastore]. 
[datastore] Executing [C:\Program Files\Java\jre1.8.0_74\bin\java, -Doauth.is_admin=true, -javaagent:C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\.appengine\lib\agent\appengine-agent.jar, -Xbootclasspath/p:C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\.appengine\lib\override\appengine-dev-jdk-overrides.jar, -classpath, C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\CloudDatastore.jar;C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\.appengine\lib\impl\appengine-api.jar;C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\.appengine\lib\appengine-tools-api.jar;C:\Users\susan\AppData\Local\Google\Cloud SDK\google-cloud-sdk\platform\gcd\.appengine\lib\impl\appengine-api-stubs.jar, com.google.appengine.tools.development.DevAppServerMain, --property=kickstart.user.dir=C:\Users\susan\AppData\Local\Google\Cloud SDK, --disable_update_check, --property=datastore.index_configuration_format=yaml, --port=8578, --address=localhost, --property=datastore.force_is_high_replication=true, --property=datastore.default_high_rep_job_policy_unapplied_job_pct=10.0, --allow_remote_shutdown, C:\Users\susan\AppData\Roaming\gcloud\emulators\datastore] 
[datastore] Apr 08, 2016 8:14:51 PM java.util.prefs.WindowsPreferences <init> 
[datastore] WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5. 
[datastore] Apr 08, 2016 8:14:51 PM com.google.apphosting.utils.jetty.JettyLogger info 
[datastore] INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger              [datastore] Apr 08, 2016 8:14:51 PM com.google.appengine.tools.development.DevAppServerImpl setServerTimeZone           [datastore] WARNING: Unable to set the TimeZone to UTC (this is expected if running on JDK 8) 
[datastore] Apr 08, 2016 8:14:51 PM com.google.apphosting.utils.jetty.JettyLogger info 
[datastore] INFO: jetty-6.1.x 
[datastore] Apr 08, 2016 8:14:51 PM com.google.apphosting.utils.jetty.JettyLogger info 
[datastore] INFO: Started [email protected]:8578 
[datastore] Apr 08, 2016 8:14:52 PM com.google.appengine.tools.development.AbstractModule startup 
[datastore] INFO: Module instance default is running at http://localhost:8578/ 
[datastore] Apr 08, 2016 8:14:52 PM com.google.appengine.tools.development.AbstractModule startup 
[datastore] INFO: The admin console is running at http://localhost:8578/_ah/admin 
[datastore] Apr 08, 2016 8:14:52 PM com.google.appengine.tools.development.DevAppServerImpl doStart 
[datastore] INFO: Dev App Server is now running 

私はまた、次の環境変数を設定:

var gcloud = require('gcloud')({ 
    projectId: 'susantestproject', 
}); 

var datastore = gcloud.datastore({ 
    apiEndpoint: 'http://localhost:8578' 
}); 

app.get('/', function (req, res) { 

// Save data to Datastore. 
var blogPostData = { 
    title: 'How to make the perfect homemade pasta', 
    author: 'Andrew Chilton', 
    isDraft: true 
}; 

var blogPostKey = datastore.key('BlogPost'); 

datastore.save({ 
    key: blogPostKey, 
    data: blogPostData 
}, function(err) { 
    // `blogPostKey` has been updated with an ID so you can do more operations 
    // with it, such as an update. 
    blogPostData.isDraft = false; 

    datastore.save({ 
    key: blogPostKey, 
    data: blogPostData 
    }, function(err) { 
    if (!err) { 
     // The blog post is now published! 
      res.status(200).send('Hello, world! An insert has been made!'); 

    } 

    }); 
}); 

:その後、私は次のコードを持っている私のコードで

set DATASTORE_DATASET=susanproject 
set DATASTORE_HOST=http://localhost:8578 
set DATASTORE_EMULATOR_HOST=localhost:8578 
set DATASTORE_PROJECT_ID=susanproject 

を私がコードを実行し、localhost:3000を打つと(それは '/'ディレクトリに当たるので)、次の出力を得る:

App listening at http://:::3000 
E0408 20:14:36.906000000 8752 tcp_client_windows.c:106] on_connect error: No connection could be made because the target machine actively refused it. 
E0408 20:14:36.910000000 8752 parsing.c:472] Unknown frame type 50 
E0408 20:14:37.909000000 6356 tcp_client_windows.c:106] on_connect error: No connection could be made because the target machine actively refused it. 
E0408 20:14:37.913000000 6356 tcp_client_windows.c:106] on_connect error: No connection could be made because the target machine actively refused it. 
E0408 20:14:37.917000000 6356 parsing.c:472] Unknown frame type 50 

http://localhost:8578/_ah/adminで管理コンソールに接続できますが、データストアには何も挿入されません。全体的に私は私のローカルエミュレータに接続したいと思いますが、できません。

UPDATE:

それの一体のために私は、Ubuntuのインストール、仮想マシンを作成し、それがプラットフォームの問題だったかどうかを確認するには、Windowsとは異なり、LinuxでGoogleのデータストアをインストールしようとしました。

私はまた、0.30.0より前のgcloud版に敬意を表しています。もし私がそのapiを使用すれば、すべてが動作します。 0.30.0以上を試してみると、これらのエラーが発生します。

答えて

1

私は、これはv0.30.0のリリースノートに記載されたが見つかりました:

また、私たちは今、あなたのデータストアの呼び出しにパフォーマンスの向上を与えることgRPCを使用しています。現在のところ、gcloud SDKにはgRPCエミュレータがありません。つまり、アップストリームAPIではなくローカルホストバックエンドを使用する場合は、gcd.shツールを直接使用する必要があります。

https://github.com/GoogleCloudPlatform/gcloud-node/releases/tag/v0.30.0

あなたがgcd.shを使用してみましたか?

簡単なガイド:

  • 、彼らがリリースに与えるリンクからアーカイブをダウンロード
  • 開梱mydatadir
  • 実行./gcsを作成./gcs.shジップ
  • ラン指摘しています。

    :SH別のシェルの実行ではmydatadir

を開始

export DATASTORE_EMULATOR_HOST=localhost:8080 
export DATASTORE_HOST=http://localhost:8080 

アプリを実行します。

ウィンドウを使用している場合に実行できるgcs.batがあります。

このgRPCデータストアは進行中の作業だと思います。おそらく管理コンソールのようなgcloudの鐘や笛がないでしょう。私はそれのためのドキュメントを見つけることができません。

+0

ありませんしていません。申し訳ありませんが、私はこのツールに慣れていませんか?これを私のnodejsコードにどのように組み込むのですか? – user2924127

+1

(私の回答のフォーマットに問題がある) + [リリースノートに記載されているリンク]からアーカイブをダウンロードする(https://storage.googleapis.com/gcd/tools/gcd-grpc-1.0.0.zip) +ジップ 開梱 - mydatadir +ランは別のシェルの実行ではmydatadir を開始./gcs.sh作成./gcs.sh実行します。 輸出DATASTORE_EMULATOR_HOST = localhostを:8080 輸出DATASTORE_EMULATOR_HOST = localhostは:8080 今すぐアプリを実行してください ウィンドウを使用している場合に実行できるgcs.batがあります。 –

+0

ありがとう、私はそれを得たが、管理者のURLはありますか?私はlocalhost:8080/_ah/adminに疲れましたが運はありませんか? – user2924127

0

私は同じ問題を抱えていました。

は、Linux上で私が実行して、それを解決:

~/apps/google-cloud-sdk/platform/gcd/gcd.sh start --host=localhost --port=8463 --store_on_disk=True --consistency=0.32 --allow_remote_shutdown ~/.config/gcloud/emulators/datastore 

は、あなたが知ってはいけない

http://localhost:8463/_ah/admin 

で管理ページを取得する場合は、あまりにも他のプラットフォームでも同じ作品..

関連する問題