【问题标题】:Why cloud build saying I am missing Required 'compute.instances.create' permission for my project?为什么云构建说我缺少我的项目所需的“compute.instances.create”权限?
【发布时间】:2021-12-10 00:37:12
【问题描述】:

我正在尝试使用“使用容器创建”方法,但出现以下错误:

错误:(gcloud.compute.instances.create-with-container)不能 获取资源:第 2 步: - 必需的“compute.instances.create” 许可 'projects/local_test_prod1283/zones/us-central1-a/instances/instanceapptraining'

我检查了项目 local_test_prod1283 确实有角色compute.instanceAdmin.v1

我的云构建yaml如下:

steps:
- name: gcr.io/cloud-builders/docker
  args: ['build', '-t', 'gcr.io/local_test_prod1283/apptraining', '.']

- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/local_test_prod1283/apptraining"]

- name: 'gcr.io/cloud-builders/gcloud'
  args: ['compute', 'instances', 'create-with-container', 'instanceapptraining', '--machine-type=n1-standard-1', '--zone=us-central1-a', '--preemptible', '--container-image=gcr.io/local_test_prod1283/apptraining']

我在这里错过了什么?

【问题讨论】:

    标签: google-cloud-platform google-compute-engine google-cloud-build google-cloud-iam cloudbuild.yaml


    【解决方案1】:

    使用 Cloud Shell:

    gcloud projects add-iam-policy-binding $PROJECT --role roles/compute.instances.create --member='serviceAccount:test-proj1@@cloudbuild.gserviceaccount.com'
    

    【讨论】:

    • 这个答案是错误的,但你在正确的轨道上。该角色必须添加到以 @cloudbuild.gserviceaccount.com 结尾的 Cloud Build 服务帐号。
    • 谢谢@JohnHanley,我可以编辑答案吗?
    • 是的,当然。改进总是受欢迎的。
    【解决方案2】:

    没关系,我必须将 compute.instanceAdmin.v1 添加到 @cloudbuild.gserviceaccount.com。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2020-10-13
      相关资源
      最近更新 更多