使用 gcloud 连接到 Google 数据存储

Connecting to Google Datastore using gcloud

我正在尝试连接到我的 Google 数据存储实例,但我找不到任何有关如何初始化连接的示例代码!

Gcloud 的主要 documentation 立即从如何分配实体或查询开始,但跳过了关键的连接位。这 演示部分似乎特定于演示,因为它使用了相当混乱的测试环境变量。

最重要的是,我感兴趣的是我需要定义哪些环境变量,以及是否可以在 python 程序中定义服务电子邮件和密钥路径。

如果有人可以提供有关如何将某些内容提交到数据存储实例的示例代码,我们将不胜感激。

谢谢!

找了一圈,终于找到了我需要定义的环境变量。

从 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 假设您将 App Engine 与 Datastore 一起使用,这就是为什么如果您首先介绍 Google Cloud 是它的 Datastore 服务,那么找到这些变量会比较棘手。

在 Developer's Console Credential 部分创建服务帐户并下载 JSON 密钥,然后让 GOOGLE_APPLICATION_CREDENTIALS 环境变量指向它是一种方法,如果您不使用 Appengine 或 Compute engine .

您通常不会像您那样在代码中这样做,因为它特定于给定环境。

如果您使用的是 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')