【问题标题】:Connecting to Google Datastore using gcloud使用 gcloud 连接到 Google Datastore
【发布时间】:2015-05-24 23:01:16
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: google-cloud-datastore gcloud-python google-cloud-python


    【解决方案1】:

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

    从 Python 中连接到您的谷歌数据存储:

    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 服务,找到这些变量会比较棘手。

    【讨论】:

      【解决方案2】:

      如果您不使用 Appengine 或计算引擎,则在开发人员控制台凭据部分创建服务帐户并下载 JSON 密钥,然后让 GOOGLE_APPLICATION_CREDENTIALS 环境变量指向它是一种方法。

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

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

      【讨论】:

      • 按照我的示例,它并没有真正硬编码,它是从特定于我计划在其中运行代码的每个环境的设置文件中导入的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 2020-02-23
      • 1970-01-01
      • 2021-06-08
      • 2017-09-09
      • 1970-01-01
      • 2020-11-28
      相关资源
      最近更新 更多