Bigquery Terraform Schedule 查询部署错误
Posted
技术标签:
【中文标题】Bigquery Terraform Schedule 查询部署错误【英文标题】:Bigquery Terraform Schedule queries deployment error 【发布时间】:2021-12-27 12:08:41 【问题描述】:以下是我的 Bigquery terraform main.tf 文件中的代码
resource "google_bigquery_data_transfer_config" "config_queries"
for_each = fileset("$path.module/scheduled_queries", "*.sql")
depends_on = [google_bigquery_table.tables]
data_source_id = "scheduled_queries"
location=var.location
destination_dataset_id=google_bigquery_dataset.dataset.dataset_id
display_name = "config_queries_$substr(each.value, 0, length(each.value) -4)"
schedule = "every 4 hours "
params =
destination_table_name_template = substr(each.value,0,length(each.value) -4)
write_disposition = "WRITE_APPEND"
query = file("$path.module/scheduled_queries/$each.value")
我遇到以下错误:
│错误:错误创建配置:googleapi:错误404:未找到请求的实体。
如果单独运行 sql 文件,相同的代码可以正常工作。 任何建议
【问题讨论】:
这通常发生在您使用的帐户无法访问资源时。您能否确认该项目是否存在并拥有有效的计费帐户。此外,这是唯一引发的错误? “地形计划”的输出是什么?你能毫无问题地生成执行计划吗?? github.com/googleapis/python-bigquery-datatransfer/issues/21 ...此链接解决方案对我有用 很高兴您能够解决您的问题。为了也帮助社区中的未来用户,解决方案是 paslandu 提供的评论?能详细点吗?你也可以回答你自己的问题,我会竖起大拇指的。 【参考方案1】:我会留下这个社区的答案以提高知名度。如果它不反映实际答案,请随时更新。这是link 提供的解决方案paslandau 中的原始回复。
由于我花了一天的大部分时间来完成这项工作,以下是对我有用的快速指南:
-
问候,由于我花了一天的大部分时间来完成这项工作,以下是对我有用的快速指南:
在 Project-A 中创建服务帐户
https://console.cloud.google.com/iam-admin/serviceaccounts?orgonly=true&project=Project-A
如果你已经有服务账号,可以在它的json keyfile中找到对应的项目id
"type": "service_account",
"project_id": "Project-A",
...
为您要通过 (Project-B) 创建传输作业的项目激活 Big Query Transfer API
https://console.cloud.google.com/marketplace/product/google/bigquerydatatransfer.googleapis.com?project=
通过https://console.cloud.google.com/iam-admin/iam?project=Project-B将第1步中的服务帐户添加到具有“Big Query Admin”角色的项目-B
尝试通过 API(即“从您的代码”)创建传输作业。这将触发标题中提到的错误-其中还将包括Project-B的自动生成的传输服务帐户,例如
400 P4 service account needs iam.serviceAccounts.getAccessToken permission. Running the following command may resolve this error: gcloud projects add-iam-policy-binding <PROJECT_ID> --member='serviceAccount:service-<PROJECT_NUMBER>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com'
复制转账服务账号的名称,例如
通过
将转移服务帐户添加到具有“服务帐户令牌创建者”角色的项目-Ahttps://console.cloud.google.com/iam-admin/iam?project=Project-A
按照步骤 4 重新运行传输服务作业的创建。现在应该会成功。
【讨论】:
以上是关于Bigquery Terraform Schedule 查询部署错误的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Terraform 管理 BigQuery 表的架构更改
单独 JSON 文件中的 Terraform Bigquery 表架构
Bigquery Terraform Schedule 查询部署错误