Google app engine App engine project-1正在尝试访问project-2中的BQ?

Google app engine App engine project-1正在尝试访问project-2中的BQ?,google-app-engine,google-bigquery,Google App Engine,Google Bigquery,我的应用程序引擎正在project-1中运行。我想访问project-2中的BQ。如何使project-1中的app engine访问project-2中的BQ 最简单的方法是将“project-1”的默认服务帐户添加到“project-2”的权限列表中: 在云控制台中,转到project-1的权限部分 选择“服务帐户”子选项卡 查找默认服务帐户(或创建新帐户) 将服务帐户添加到project-2的权限中 编辑 您需要以使用应用程序默认服务帐户的方式创建客户端。例如,如果您使用的是pytho

我的应用程序引擎正在project-1中运行。我想访问project-2中的BQ。如何使project-1中的app engine访问project-2中的BQ

最简单的方法是将“project-1”的默认服务帐户添加到“project-2”的权限列表中:

  • 在云控制台中,转到project-1的权限部分
  • 选择“服务帐户”子选项卡
  • 查找默认服务帐户(或创建新帐户)
  • 将服务帐户添加到project-2的权限中
编辑

您需要以使用应用程序默认服务帐户的方式创建客户端。例如,如果您使用的是python,它将类似于:

# Grab the application's default credentials from the environment.
credentials = GoogleCredentials.get_application_default()
# Construct the service object for interacting with the BigQuery API.
bigquery_service = build('bigquery', 'v2', credentials=credentials)
现在,使用PK文件,您可以以同一客户端正常工作的方式启动dev appserver:

您应该请求对您感兴趣的数据集的“可以查看”(或“可以编辑”)权限。project-2(或相应数据集)的所有者将能够这样做。
您不需要出现在项目级别,在某些情况下甚至不合适,但您必须在数据集级别具有适当的权限

如果您是project-2或相应数据集的所有者,您可以按照以下说明轻松完成此操作

谢谢你,杰西。我得到了project-2的服务帐户和Pk12文件。我在project-1应用程序引擎中使用了这些。我是否需要在project-2中创建客户端id,以便在App engine中使用它?如果我遵循这些步骤,我就能够在本地机器上正确运行应用程序引擎代码,但在云中却不能。当我在云中运行应用引擎代码时,我看到无效令牌或401授权错误。您将使用pk12文件进行本地开发。在云中运行的惯例是遵循我的步骤或@Mikhail感谢Jesse的步骤。我想设计我的应用程序,让它可以在本地和云上运行。没有PK12文件我怎么做?我还有一个基本问题。如何创建没有PK12文件的BQ服务。当我创建BQ客户机()时,会使用默认服务帐户创建BQ服务吗?当我尝试使用默认服务帐户获取BQ服务时,我会将bigquery_服务实例化为null。然后我做了bigquery_服务。getServiceAccountId(),我的服务帐户为null。