我尝试使用bq cli运行查询,该查询连接来自连接到Google表格的表格和Bigquery上的另一个表格中的数据。我在Google Compute Engine上的某个实例上运行此操作,但我收到此错误:
Access Denied: BigQuery BigQuery: No OAuth token with Google Drive scope was found.
我看一下,发现我需要更改范围,但我的实例已经使用了设置"允许完全访问所有Cloud API"。
任何人都知道如何解决这个问题?
由于
答案 0 :(得分:3)
问题是Drive不是Cloud API的一部分。它属于GSuite Activity API。见here。因此,未对GCE实例上的服务帐户启用Drive(https://www.googleapis.com/auth/drive
)范围。
这是您需要做的事情:
gcloud compute instances create [YOUR-PREFERRED-INSTANCE-NAME] --scopes=https://www.googleapis.com/auth/drive,https:/
/www.googleapis.com/auth/bigquery --zone=[YOUR-PREFERRED-ZONE]
bq query "SELECT * FROM [grey-sort-challenge:sheets_test.test]"
。使用由Drive中的测试表支持的BigQuery表,我最初得到了与您相同的错误。但是,在设置上述范围后,它现在可以工作:
现在,在我的测试/示例中,我从头开始创建了一个实例(第2步)。但是,如果您要修改现有实例,则需要停止该实例,然后使用gcloud beta compute instances set-scopes
命令更新范围。请参阅here。
注意:当您以这种方式设置范围时,您将破坏已设置的所有现有范围 - 因此请确保输入所需的所有范围,例如:gcloud beta compute instances set-scopes [INSTANCE-NAME] --scopes=https://www.googleapis.com/auth/drive,https://
www.googleapis.com/auth/bigquery,...
< / p>