Terraform 无法更新订阅

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

我有 terraform 脚本定义一个 pubsub 订阅推送数据到 bigquery 如下:

resource "google_pubsub_subscription" "my-subscription" {
  name              = "my-subscription"
  topic             = google_pubsub_topic.my_topic.name
  project           = module.my_project.project_id

  bigquery_config {
    table           = "my_dataset.my_table"
    write_metadata  = true
  }

  depends_on        = [
    google_bigquery_table_iam_member.pubsub_bq_data_editor,
    google_bigquery_table_iam_member.pubsub_bq_meta_viewer
  ]

  dead_letter_policy {
    dead_letter_topic = google_pubsub_topic.my_deadletter.id
    max_delivery_attempts = 10
  }
}

脚本运行良好并成功创建订阅。随后,我对脚本做了一些修改,包括

  • 将目标 bigquery 表从
    my_dataset.my_table
    更改为
    my_raw_dataset.my_table
  • 将 pub/sub 订阅者帐户从默认的 pubsub 服务帐户更改为自定义服务帐户,并授予对底层 bigquery 表的权限。
  • 将资源名称从
    my-subscription
    重命名为
    my_subscription
    并使用
    terraform state rm
    terraform import
    命令重新同步状态。

当我尝试部署更改时,我收到错误:

│ Error: Error updating Subscription "projects/my-project/subscriptions/my-subscription": googleapi: Error 403: The caller does not have permission
│ 
│   with google_pubsub_subscription.my_subscription,
│   on segment.pubsub.tf line 29, in resource "google_pubsub_subscription" "my_subscription":
│   29: resource "google_pubsub_subscription" "my_subscription" {

我验证了我的个人帐户和 Terraform 使用的服务帐户都具有

role/owner
项目访问权限
my-project
.

请问有人能给点建议吗?

google-bigquery terraform publish-subscribe google-cloud-pubsub google-iam
1个回答
0
投票

这里的正确答案可能是您需要为您的发布/子帐户授予 BigQuery 权限(BigQuery 数据编辑器和 igQuery 元数据查看器)。

参见此处:https://cloud.google.com/pubsub/docs/create-subscription#assign_bigquery_service_account

© www.soinside.com 2019 - 2024. All rights reserved.