Bigquery使用Terraform从图纸文件创建表

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

我正在尝试使用Terraform ingesting data from Google Sheets创建BQ表,这是我的[[external_data_configuration块]

resource "google_bigquery_table" "sheet" { dataset_id = google_bigquery_dataset.bq-dataset.dataset_id table_id = "sheet" external_data_configuration { autodetect = true source_format = "GOOGLE_SHEETS" google_sheets_options { skip_leading_rows = 1 } source_uris = [ "https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxx", ] }
我将文件公开,但是当我尝试创建表时出现错误:

错误:googleapi:错误400:读取表格时出错:工作表,错误 消息:无法读取电子表格。错误:没有OAuth令牌 找到了Google云端硬盘范围。,无效

我读过Terraform documentation,似乎我需要在

provider.tf

文件中指定access_tokenscopes,我只是不知道该怎么做它将与我当前的身份验证方法(服务帐户)冲突]解决方案

将范围参数添加到

provider.tf

provider "google" { credentials = "${file("${var.path}/secret.json")}" scopes = ["https://www.googleapis.com/auth/drive","https://www.googleapis.com/auth/bigquery"] project = "${var.project_id}" region = "${var.gcp_region}" }

您需要添加Google驱动程序和Bigquery的范围

google-bigquery google-drive-api terraform-provider-gcp
1个回答
1
投票
默认情况下,大多数GCP服务都接受并使用云平台范围。但是,Google云端硬盘不接受/使用云平台范围,因此BigQuery中的此特定功能需要指定其他范围。为了完成这项工作,您应该使用Google云端硬盘范围https://www.googleapis.com/auth/driverelevant BQ documentation)来扩展默认的地形列表。有关已记录范围的更详尽列表,请参见https://developers.google.com/identity/protocols/oauth2/scopes

访问令牌表示您已经通过了身份验证流程并提供了必要的范围,因此同时提供范围和令牌是没有意义的。您可以使用范围生成令牌,或者将服务帐户用于其他范围。

希望这会有所帮助。    
© www.soinside.com 2019 - 2024. All rights reserved.