当前位置: 首页 > 知识库问答 >
问题:

使用项目1的服务帐户Json密钥从项目2中的Python云函数访问项目1的BigQuery数据存储

谢涵亮
2023-03-14

我在GCP有两个不同的项目。

我需要访问Project-1的BigQuery数据存储。已创建所需的服务帐户Json密钥。

在项目2中编写了一个Python云函数。据我所知,我需要从服务号json密钥文件(从项目1)检索凭据。已将服务号json密钥文件上传到Project-2的存储桶中。

我正在尝试从此Json密钥文件检索凭据。已尝试以下不同方法:
凭据=服务\帐户。资格证书从\u服务\u帐户\u文件(文件名,范围=)https://www.googleapis.com/auth/cloud-platform“”或client=bigquery。客户从\u服务\u帐户\u json(文件名)或client=bigquery。客户从服务帐户文件(文件名)或凭据=服务帐户。资格证书来自服务帐户信息(服务帐户信息)

我一直出错,

我尝试将文件名作为bucket Json文件的URL或LinkURL或公共URL。

请告知我们如何从Project-2的云功能访问Project-1的BigQuery,我确实拥有Project-1的服务帐户Json密钥。

client = bigquery.Client(credentials=credentials,project=credentials.project_id,)

#client = bigquery.Client.from_service_account_json(filetest)

使用项目1的服务帐户Json键从项目2中的Python云函数

共有3个答案

管景天
2023-03-14

我首先需要澄清:

  1. 我注意到您将服务帐户存储在项目2中,如何将其传递给您的云功能?您是否使用某些gcs客户端读取服务帐户的内容,然后将其设置为GOOGLE\u APPLICATIONS\u CREDENTIALS环境变量
  2. 如果您已经创建了一个服务帐户并从project 1下载了密钥,那么您只需要确保您可以通过获取必要的访问权限来查询数据,例如,如果您只需要查询数据,请使用BigQuery viewer。之后,您通过了凭据,可以继续执行前面提到的步骤
萧秋月
2023-03-14

服务帐户具有与用户帐户类似的邮件地址。

因此,您可以将所需的权限授予user@project2.iam.gserviceaccount.com在project1数据集/表上?您真的需要Project 2上的另一个服务帐户吗?

须旭
2023-03-14

谢谢你的帮助。我们能够使它工作。

其内容如下:

>

在项目1中,添加新IAM角色,新成员作为项目2服务帐户ID,并授予对项目1的BigQuery的访问权

在项目2中,添加服务帐户ID以执行云功能

在Cloud Function中,只需引用Project 1,如Client=bigQuery。客户端(project='Project 1),我们能够从BigQuery检索数据。-

 类似资料:
  • Version Control - https://github.com/spring-projects/spring-data-elasticsearch Bugtracker - https://jira.spring.io/browse/DATAES Release repository - https://repo.spring.io/libs-release Milestone repo

  • 我有一个Spring Data JPA项目来访问我的数据库并检索用户凭据。我将这个项目打包为jar(不是可执行jar),并将其作为maven依赖项包含到另一个Spring boot项目中,因为我想重用以前开发的相同实体和存储库。每次运行Spring Boot应用程序时,都会出现以下错误: 我开始怀疑我正在做的事情是否可能?PS:我不想将JPA项目与控制器和服务项目混合在一起

  • 通过一个简单的案例,我们了解如何使用OBLOQ。 创建项目设备:设备一 登录IoT网站,注册账号。进入工作间。新建一个设备,默认名字“设备一”。 一个账号,默认一共有10000条信息的储存容量。这些容量共所有设备共享。例如,图中设备上方显示“0/1000”,那么此设备最大可储存1000条信息,已使用0条信息的储存空间。如果此设备收发的信息超过1000条,新信息将不再存入。 每个设备默认每隔1s储存

  • 参考《项目建议书》、《需求说明书》、用户界面原型、以及各种标准和规范对数据库设计如下: (1). 结构设计: * 找实体: 实体是实体-关系模型的基本对象,是现实世界中各种事物的抽象。 凡是可以相互区 开并可以被识 的事、物、概念等对象均可认为是实体。 基本的实体列表如下: 会员 类别 商品 订单 订单详情 收货地址 商品评论 商品图片 友情链接 站内公告 ... * 找属性: 每个实体都有一组特

  • 这里的文档说生产应用引擎项目应该有权访问默认凭据?: “3.如果您正在谷歌App Engine生产中运行,将使用与应用程序关联的内置服务帐户。” 是不是我漏了什么装置? 我的应用程序引擎版本(gradle):

  • 我像往常一样尝试运行firebase deploy,但遇到了以下错误: 错误:无法获取Firebase项目名称。请确保该项目存在,并且您的帐户具有访问该项目的权限。 我已经运行,我得到“已经以email@example.com身份登录” 文件显示了一些401超文本传输协议响应,其中一些具有以下文本: “请求具有无效的身份验证凭据”和“无效令牌” 这怎么解决?