【问题标题】:Cannot crerate Google Storage Transfer Job with Terraform无法使用 Terraform 创建 Google Storage Transfer 作业
【发布时间】:2021-09-06 21:30:41
【问题描述】:

我正在尝试通过 Terraform 创建一个存储传输作业​​:

resource "google_storage_transfer_job" "goout_storage_backup" {
  description = "my-transfer-job"
  project = "my-project"
  transfer_spec {
    object_conditions {
      max_time_elapsed_since_last_modification = "86400s"
    }
    transfer_options {
      delete_objects_from_source_after_transfer  = false
      delete_objects_unique_in_sink              = false
      overwrite_objects_already_existing_in_sink = true
    }
    gcs_data_source {
      bucket_name = "source"
    }
    gcs_data_sink {
      bucket_name = "target"
    }
  }
  schedule {
    schedule_start_date {
      year  = 1970
      month = 01
      day   = 1
    }
    start_time_of_day {
      hours   = 4
      minutes = 27
      seconds = 0
      nanos   = 42
    }
  }
}

我的现有作业可以使用此脚本轻松管理,但是 Terraform 拒绝创建任何新的传输作业:

错误:googleapi:错误 400:由于权限不足,无法获取 Google Cloud Storage (GCS) 存储桶 source 的位置。请验证是否已授予必要的权限。失败的前提条件

但是我的用户是owner,我也尝试分配Storage Transfer AdminStorage Admin,但没有成功。

【问题讨论】:

  • 您是通过 Cloud Build 还是通过 CLI 运行它?源桶和汇桶是否在同一个项目中?如果他们在不同的项目中,您是否正确地获得了这两个项目的权限?
  • 这发生在 gcloud 实例和我的本地主机上。存储桶在同一个项目中。
  • 只是想确认一下,所以您确实在该资源块中定义了一个项目?我在上面的代码中没有看到它。
  • 您能否查看此链接以查看是否有帮助? stackoverflow.com/a/53022262/13291468
  • 我只是手动将传输服务帐户添加到源和目标存储桶中,从而解决了这个问题。

标签: google-cloud-platform terraform google-cloud-storage terraform-provider-gcp


【解决方案1】:

通过 Terraform 创建传输作业时,目标存储桶之前必须已分配传输服务帐户。分配这些解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 2020-10-31
    • 2018-10-03
    • 2018-01-03
    • 2021-04-01
    • 2021-03-25
    • 2022-07-26
    • 1970-01-01
    相关资源
    最近更新 更多