由于权限不足,无法获取区域 us-central-c 中机器类型 n1-standard-2 的机器类型信息 - Google Cloud Dataflow

Posted

技术标签:

【中文标题】由于权限不足,无法获取区域 us-central-c 中机器类型 n1-standard-2 的机器类型信息 - Google Cloud Dataflow【英文标题】:Unable to get machine type information for machine type n1-standard-2 in zone us-central-c because of insufficient permissions - Google Cloud Dataflow 【发布时间】:2022-01-08 15:37:26 【问题描述】:

我不确定我错过了什么,但不知何故我无法开始工作并且由于权限不足而失败:

这是我运行的 terraform 代码:​​

resource "google_dataflow_job" "poc-pubsub-stream" 
  project                 = local.project_id
  region                  = local.region
  zone                    = local.zone
  name                    = "poc-pubsub-to-cloud-storage"
  template_gcs_path       = "gs://dataflow-templates-us-central1/latest/Cloud_PubSub_to_GCS_Text"
  temp_gcs_location       = "gs://$module.poc-bucket.bucket.name/tmp"
  enable_streaming_engine = true
  on_delete               = "cancel"
  service_account_email   = google_service_account.poc-stream-sa.email

  parameters = 
    inputTopic           = google_pubsub_topic.poc-topic.id
    outputDirectory      = "gs://$module.poc-bucket.bucket.name/"
    outputFilenamePrefix = "poc-"
    outputFilenameSuffix = ".txt"
  

  labels = 
    pipeline = "poc-stream"
  

  depends_on = [
    module.poc-bucket,
    google_pubsub_topic.poc-topic,
  ]

在 terraform 代码中使用的我的 SA 权限:

任何想法我错过了什么?

【问题讨论】:

添加角色/compute.viewer 角色以解决您的问题。有关创建 Dataflow 作业所需的权限,请参阅此 doc。让我知道是否已解决。 我添加了那个范围但得到了相同的结果 嗨@Askar,这里是 GCP 支持。我们想看看您的设置。 Can you raise a private thread in the issue tracker (referencing this question, as stated in the template) with the project ID?创建主题后,请在此处分享问题 ID,以便我们跟进。请注意,只有您和 GCP 支持人员才能访问该组件中的问题。 谢谢@Vishal。我与 Google 基础架构团队一起解决了这个问题。 您好@Askar,您能否澄清一下问题是仅针对 Terraform 选项,还是由于服务帐户中也缺少 roles/compute.viewer 角色? 【参考方案1】:

该错误描述了由于权限不足而无法获取机器类型信息。要访问机器类型信息,请将roles/compute.viewer 角色添加到您的服务帐号。

roles/compute.viewer 角色,用于访问机器类型信息和查看其他设置。

有关创建 Dataflow 作业所需权限的详细信息,请参阅此doc。

【讨论】:

添加后没用。【参考方案2】:

看来我的 DataFlow 工作需要提供以下这些选项。根据文档,它是可选的,但在我的情况下需要定义。

...
  network                 = data.terraform_remote_state.dev.outputs.network.network_name
  subnetwork              = data.terraform_remote_state.dev.outputs.network.subnets["us-east4/us-east4-dev"].self_link
...

【讨论】:

以上是关于由于权限不足,无法获取区域 us-central-c 中机器类型 n1-standard-2 的机器类型信息 - Google Cloud Dataflow的主要内容,如果未能解决你的问题,请参考以下文章

由于权限不足,无法读取配置文件

Web.Config - 由于权限不足,无法读取配置文件

IIS------Http错误:50019,由于权限不足无法读取配置文件

IIS.由于权限不足而无法读取配置文件的解决办法

错误:(gcloud.compute.ssh)无法获取资源:-权限不足

win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面