无法使用来自另一个项目的映像部署 Cloud 运行 服务
Unable to deploy a Cloud Run Service using an image from another project
尝试使用同一组织中另一个项目的图像部署云 运行 服务时出现此错误。
"
Google Cloud 运行 Service Agent必须有读取镜像的权限,gcr.io/my-builds/consultoriaweb@sha256:8c655b2bab.....确保提供的容器镜像URL是正确的并且上述帐户有权访问图像。如果您刚刚启用云 运行 API,权限可能需要几分钟才能传播。请注意,图像来自项目 [my-builds],与此项目 [my-webapp] 不同。必须从该项目向 Google 云 运行 服务代理授予权限。
"
我正在使用 Google 控制台 Web 界面选择要从容器注册表部署到我的构建项目上的映像。
已经在 [my-builds] 项目上添加了 IAM 权限,两者都试过了:
[my-webapp-project-number]-compute@developer.gserviceaccount.com => 角色计算图像用户
[my-webapp-project-number]@cloudservices.gserviceaccount.com => 角色计算图像用户
Google 文档说我应该将 roles/compute.imageUser 角色授予:
[my-webapp-project-number]@cloudservices.gserviceaccount.com 在我的构建项目上,但我可以'无法正常工作。
Google 使用其他项目图像的文档,但我不知道它是否适用于 Cloud 运行。
https://cloud.google.com/deployment-manager/docs/configuration/using-images-from-other-projects-for-vm-instances#granting_access_to_images
在此先感谢您对此的任何帮助
你混合了不同的东西。容器映像不是 Compute Engine 启动磁盘映像。
因此,您需要授予 Cloud 运行 服务代理服务帐户以访问您的其他项目的图像。您可以找到 the documentation here 以授予对 GCR 图像的访问权限。
然后您需要获取具有此模式的 Cloud 运行 服务代理服务帐户
service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
两者结合,您可以转到托管容器镜像的项目的控制台;转到 IAM 页面,单击添加
- 添加 Cloud 运行 服务代理服务帐户作为成员
- 授予角色:存储对象查看器。
谢谢。让它工作!
我发现很多不同的 resources/docs 设置云权限 运行 从其他项目中拉取容器镜像。所以我测试发现真正需要的那个:
对于 Artifacty 注册表:
- 成员:
serviceAccount:service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
- 角色:
roles/artifactregistry.reader
对于容器注册表:
- 成员:
serviceAccount:service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
- 角色:
roles/storage.objectViewer
再次感谢。
尝试使用同一组织中另一个项目的图像部署云 运行 服务时出现此错误。
" Google Cloud 运行 Service Agent必须有读取镜像的权限,gcr.io/my-builds/consultoriaweb@sha256:8c655b2bab.....确保提供的容器镜像URL是正确的并且上述帐户有权访问图像。如果您刚刚启用云 运行 API,权限可能需要几分钟才能传播。请注意,图像来自项目 [my-builds],与此项目 [my-webapp] 不同。必须从该项目向 Google 云 运行 服务代理授予权限。 "
我正在使用 Google 控制台 Web 界面选择要从容器注册表部署到我的构建项目上的映像。
已经在 [my-builds] 项目上添加了 IAM 权限,两者都试过了:
[my-webapp-project-number]-compute@developer.gserviceaccount.com => 角色计算图像用户
[my-webapp-project-number]@cloudservices.gserviceaccount.com => 角色计算图像用户
Google 文档说我应该将 roles/compute.imageUser 角色授予:
[my-webapp-project-number]@cloudservices.gserviceaccount.com 在我的构建项目上,但我可以'无法正常工作。
Google 使用其他项目图像的文档,但我不知道它是否适用于 Cloud 运行。 https://cloud.google.com/deployment-manager/docs/configuration/using-images-from-other-projects-for-vm-instances#granting_access_to_images
在此先感谢您对此的任何帮助
你混合了不同的东西。容器映像不是 Compute Engine 启动磁盘映像。
因此,您需要授予 Cloud 运行 服务代理服务帐户以访问您的其他项目的图像。您可以找到 the documentation here 以授予对 GCR 图像的访问权限。
然后您需要获取具有此模式的 Cloud 运行 服务代理服务帐户
service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
两者结合,您可以转到托管容器镜像的项目的控制台;转到 IAM 页面,单击添加
- 添加 Cloud 运行 服务代理服务帐户作为成员
- 授予角色:存储对象查看器。
谢谢。让它工作!
我发现很多不同的 resources/docs 设置云权限 运行 从其他项目中拉取容器镜像。所以我测试发现真正需要的那个:
对于 Artifacty 注册表:
- 成员:
serviceAccount:service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
- 角色:
roles/artifactregistry.reader
对于容器注册表:
- 成员:
serviceAccount:service-<projectNumber>@serverless-robot-prod.iam.gserviceaccount.com
- 角色:
roles/storage.objectViewer
再次感谢。