2

Google Datastore インスタンスに接続しようとしていますが、接続を初期化する方法のサンプル コードが見つかりません。

Gcloud の主要なドキュメントは、エンティティまたはクエリを割り当てる方法からすぐに始まりますが、重要な接続ビットをスキップします。デモ セクションは、非常に紛らわしいテスト環境変数を使用するという点で、デモに固有のようです。

最も重要なことは、どの環境変数を定義する必要があるか、および Python プログラム内からサービスの電子メールとキーへのパスを定義できるかどうかに関心があることです。

何かをデータストア インスタンスにコミットする方法のサンプル コードを誰かが提供できれば、非常にありがたいです。

ありがとう!

4

2 に答える 2

1

周りを見回した後、最終的に定義する必要がある環境変数を見つけました。

Python 内から Google データストアに接続するには:

import os

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = <path to private key>
os.environ['GCLOUD_DATASET_ID'] = <dataset_id, also known as project id>

# Fetching queries should work now
query = datastore.Query(kind=<kind>, namespace=<namespace>)
for result in query.fetch():
    print result

Google は、Datastore で App Engine を使用していると想定しているため、Google Cloud を最初に紹介するのがその Datastore サービスである場合、これらの変数を見つけるのが難しくなります。

于 2015-05-25T11:08:07.600 に答える
1

開発者コンソールの認証情報セクションでサービス アカウントを作成し、JSON キーをダウンロードしてから、GOOGLE_APPLICATION_CREDENTIALS 環境変数がそれを指すようにすることは、Appengine または Compute Engine を使用していない場合の 1 つの方法です。

特定の環境に固有であるため、通常、コードでこれを行うことはありません。

Compute Engine を使用している場合は、Datastore スコープでインスタンスを作成するだけでよく、その手順は不要です。

gcloud compute instances create $INSTANCE_NAME --scopes datastore userinfo-email

また、プロジェクト ID を指定する別の方法は次のようになります。

from gcloud import datastore
datastore.set_defaults(dataset_id='project-id')
于 2015-05-26T05:08:16.590 に答える