【问题标题】:Bigquery Terraform Schedule queries deployment errorBigquery Terraform Schedule 查询部署错误
【发布时间】: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 文件,相同的代码可以正常工作。 任何建议

【问题讨论】:

  • 这通常发生在您使用的帐户无法访问资源时。您能否确认该项目是否存在并拥有有效的计费帐户。此外,这是唯一引发的错误? “地形计划”的输出是什么?你能毫无问题地生成执行计划吗??
  • 很高兴您能够解决您的问题。为了也帮助社区中的未来用户,解决方案是 paslandu 提供的评论?能详细点吗?你也可以回答你自己的问题,我会竖起大拇指的。

标签: google-bigquery terraform terraform-provider-gcp


【解决方案1】:

我会留下这个社区的答案以提高知名度。如果它不反映实际答案,请随时更新。这是link 提供的解决方案paslandau 中的原始回复。

由于我花了一天的大部分时间来完成这项工作,以下是对我有用的快速指南:

  1. 问候,由于我花了一天的大部分时间来完成这项工作,以下是对我有用的快速指南:

在 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",
...
  1. 为您要通过 (Project-B) 创建传输作业的项目激活 Big Query Transfer API

    https://console.cloud.google.com/marketplace/product/google/bigquerydatatransfer.googleapis.com?project=

  2. 通过https://console.cloud.google.com/iam-admin/iam?project=Project-B将第1步中的服务帐户添加到具有“Big Query Admin”角色的项目-B

  3. 尝试通过 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'

复制转账服务账号的名称,例如

  1. 通过

    将转移服务帐户添加到具有“服务帐户令牌创建者”角色的项目-A

    https://console.cloud.google.com/iam-admin/iam?project=Project-A

  2. 按照步骤 4 重新运行传输服务作业的创建。现在应该会成功。

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 2014-11-17
    • 2021-09-07
    • 2017-11-02
    相关资源
    最近更新 更多