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

使用部署管理器在BigQuery中创建“外部表”时,获取驱动器凭据时“403权限被拒绝”

谷星文
2023-03-14

复制步骤:

  • 在Google Sheets中创建工作表
  • 启用部署管理器
def GenerateConfig(context):
    name: str = context.env['name']
    dataset: str = context.properties['dataset']
    tables: [] = context.properties['tables']
    location: str = context.properties.get('location', 'EU')
    resources = [{
        'name': name,
        'type': 'gcp-types/bigquery-v2:datasets',
        'properties': {
            'datasetReference': {
                'datasetId': dataset,
            },
            'location': location
        },
    }]

    for t in tables:
        resources.append({
            'name': '{}-tbl'.format(t["name"]),
            'type': 'gcp-types/bigquery-v2:tables',
            'properties': {
                'datasetId': dataset,
                'tableReference': {
                    'tableId': t["name"]
                },
                'externalDataConfiguration': {
                    'sourceUris': ['https://docs.google.com/spreadsheets/d/123123123123123-123123123123/edit?usp=sharing'],
                    'sourceFormat': 'GOOGLE_SHEETS',
                    'autodetect': True,
                    'googleSheetsOptions':
                        {
                            "skipLeadingRows": '1',
                        }
                }
            },
        })
    return {'resources': resources}

我已经找到了一些这样的线索,但是它们都引用了使用“范围”来添加https://www.googleapis.com/auth/drive。我不知道如何向部署管理器请求添加作用域,也不知道作用域是如何工作的。

任何帮助都将不胜感激。

共有1个答案

东郭臻
2023-03-14

是的,使用作用域可以解决问题。然而,即使在添加了作用域之后,我也面临着同样的错误。与GCP服务帐户共享GoogleSheets文档帮助我摆脱了这个错误。

汇总-使用作用域并与用于查询表的GCP服务帐户共享文档。

此外,本文档还有助于查询外部表

 类似资料:
  • 我正在尝试将DataStudio报表连接到表和来自BigQuery的视图。在BigQuery中,表从位于我的驱动器中的GoogleSheet接收数据,视图正在查询同一个表,但添加了一些新字段。当我尝试将图表连接到其中一个数据源时,出现以下错误: BigQuery错误:访问被拒绝:BigQuery BigQuery:获取驱动器凭据时权限被拒绝。 原因是什么?我该怎么做才能解决这个问题? 我要说的是,

  • 我正在使用@google-Cloud/bigQuery将Angular10, Firebase与BigQuery集成。我在我的项目中创建了一个函数文件夹,并在其中添加了密钥json文件,该文件是在谷歌云控制台上生成服务帐户json后获得的。 我的BigQuery仪表板中有两个数据集,其源是Google Drive。但当我试图查询这些表时,我得到了一个错误。 在我的函数文件夹中,我有index.js

  • 从今天起,我们的Airflow服务无法访问BigQuery中的查询。所有作业都会失败,并显示以下消息: [2021-03-12 10:17:28079]{taskinstance.py:1150}错误-原因:403获取https://bigquery.googleapis.com/bigquery/v2/projects/waipu-app-prod/queries/e62030d7-36eb-4

  • 我希望在我遇到的这个错误代码上得到一些帮助。 语境: 我工作的公司使用GSUITE产品。 我的团队有自己的云项目设置。 谷歌硬盘不是个人硬盘。 我们使用Airflow每天/每周/每月刷新BigQuery表。 我遵循了这些解决方案 拒绝访问:获取驱动器凭据时拒绝权限 使用带有Google工作表的BigQueryAPI时出现“全局文件模式时遇到错误”错误 还引用了https://cloud.googl

  • 下面是我最初的问题,但我尝试了几个查询,最后接近解决问题。 在本教程之后,我成功地从GoogleApps脚本访问了BigQuery,但当查询包含GoogleSheet链接表时,会出现“获取驱动器凭据时权限被拒绝”错误。 由于BigQuery提供了一个创建与GoogleSheet链接的表的选项,所以我在这个设置中有几个表。 没有链接表的查询可以工作,所以代码的基本设置很好,我相信凭据设置在BigQu

  • 我试图通过谷歌查询存储在硬盘中的数据。云bigquery Python库。 我按照谷歌的指南查询硬盘数据。因此,我的代码如下所示: 问题是:凭据对象和bigQuery客户端忽略了提供的范围,导致