我正在尝试使用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",
]
}
我将文件公开,但是当我尝试创建表时出现错误:文件中指定access_token和scopes,我只是不知道该怎么做它将与我当前的身份验证方法(服务帐户)冲突]解决方案
错误:googleapi:错误400:读取表格时出错:工作表,错误 消息:无法读取电子表格。错误:没有OAuth令牌 找到了Google云端硬盘范围。,无效我读过Terraform documentation,似乎我需要在
provider.tf
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的范围
https://www.googleapis.com/auth/drive
(relevant BQ documentation)来扩展默认的地形列表。有关已记录范围的更详尽列表,请参见https://developers.google.com/identity/protocols/oauth2/scopes访问令牌表示您已经通过了身份验证流程并提供了必要的范围,因此同时提供范围和令牌是没有意义的。您可以使用范围生成令牌,或者将服务帐户用于其他范围。
希望这会有所帮助。