为啥云构建说我缺少我的项目所需的“compute.instances.create”权限?

Posted

技术标签:

【中文标题】为啥云构建说我缺少我的项目所需的“compute.instances.create”权限?【英文标题】: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']

我在这里错过了什么?

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于为啥云构建说我缺少我的项目所需的“compute.instances.create”权限?的主要内容,如果未能解决你的问题,请参考以下文章

SocketIO(app)缺少所需的位置参数“模式”[关闭]

Zbar SDK - 缺少所需的架构 x86_64

从 Xcode 9 构建中缺少所需的图标文件

在构建应用程序目标的文件 XCTest 中缺少所需的架构 armv7

“gcloud builds submit”不会因为缺少所需的替换而触发错误

应用程序可执行文件缺少所需的体系结构。至少以下 armv7 之一