使用 Google Workflow 通过 Bigquery 查询 Google Sheet

问题描述 投票:0回答:2

我正在使用云工作流程编排来查询 Bigquery 表,该表作为外部表连接到 Google Drive 上的 Google Sheet。

因此云工作流使用服务帐户

<SA_ID>@<ProjectName>.iam.gserviceaccount.com
来查询所述bigquery表。我已提供对 Google 表格中 SA 的编辑访问权限,以及对 Bigquery 中 SA 的管理员访问权限。 虽然工作流程正在使用本机 bigquery 表,但在查询连接到 google 工作表的表时,我收到以下错误
Access Denied: BigQuery BigQuery: Permission denied while getting Drive credentials.
服务帐户不应该访问谷歌表格吗?

google-cloud-platform google-workflows
2个回答
0
投票

将其发布为社区 wiki,以便其他人可以从中受益。


正如@guillaume blaquiere 提到的:

与这个问题非常相似,但目前你无法实现这一点。与 Google 云端硬盘的连接不受外部连接管理,因此没有专用的服务帐户来实现连接。 查询使用 NodeJS 连接到 Google Sheets 的 GCP BigQuery 表时权限被拒绝


您可以在此链接中提交功能请求。

注意:产品团队将调查并检查这是否是有效的功能请求。不过,没有预计到达时间。创建功能请求后,您还可以在同一链接上跟踪请求的更新。


0
投票

为 Google 云端硬盘添加连接器范围“https://www.googleapis.com/auth/drive”

main:
    steps:
    - init:
        assign:
            - result: {}
    - runQuery:
            call: googleapis.bigquery.v2.jobs.query
            args:
                projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
                body:
                    useLegacySql: false
                    useQueryCache: false
                    timeoutMs: 30000
                    query: ${
                        "<<SELECT FROM GOOGLE SHEET EXTERNAL TABLE>>"
                        }
                connector_params:
                    scopes: 
                       - 'https://www.googleapis.com/auth/bigquery'
                       - 'https://www.googleapis.com/auth/drive'
            result: queryResult
    - returnResults:
        return: ${result}
© www.soinside.com 2019 - 2024. All rights reserved.