通过YAML部署的Cloud Run表示找不到Image



我有两个用于暂存和生产的Cloud Run Knative YAML文件。我有两个用于阶段和生产的GCP项目和两套工件注册表。

我使用简单的zip,构建如下:

gcloud builds submit --tag us-east1-docker.pkg.dev/proj-a/repo-x/image-y:1.0

然后我编辑yaml以调整末尾的标签,然后使用重新部署

gcloud run services replace staging.yaml

前几天这一切都在工作,我的舞台和制作场地都已经准备好了。它不久前也刚刚为我的制作项目工作。

我只是使用gcloud config set core/project proj-b切换项目,然后再次运行这两个命令,进行必要的调整。

第一个命令成功;图像已经建立,我可以在Artifact注册表中看到它。

但第二个命令失败了:

在项目〔01234567890〕区域〔us-east1〕中将新配置应用于云运行服务〔Cloud-Run-z〕

X正在部署。。。找不到映像"us-east1-docker.pkg.dev/proj-a/repo-x/Image-y:1.0"。

X正在创建修订。。。找不到映像"us-east1-docker.pkg.dev/proj-a/repo-x/Image-y:1.0"。

正在路由通信。。。

部署失败

错误:(gcloud.run.services.replace(找不到映像'us-east1-docker.pkg.dev/proj-a/repo-x/Image-y:1.0'。

我可以看到图像,我已经将控制台中写入的URL粘贴到我的yaml中,前几天也能正常工作。

为什么Cloud Run看不到我能看到的图像?

当我输入这个问题时,我想起了我在这两个项目之间引入的唯一区别:我将生产配置为作为用户管理的服务帐户运行。我这样做是为了让它能够访问生产机密(登台不使用(。

因此,我在我的暂存项目中添加了一个新的服务帐户,并赋予它Secret Manager Secret Accessor角色,然后通过YAML配置为作为该帐户运行,然后重新部署并运行。

这对我来说没有任何意义。它似乎a(与Artifact Registry无关b(解释了前几天它工作的原因。

相关内容

  • 没有找到相关文章

最新更新