ERROR: (gcloud.app.deploy): The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image

ERROR: (gcloud.app.deploy): The App Engine appspot and App Engine flexible environment service accounts must have permissions on the image

当我尝试在 GCP App Engine 上构建我的应用程序时出现以下错误,我的应用程序环境被认为是灵活的。但是我不知道我的 App Engine 环境是不是 flex。

如果是这种情况,我如何才能在 GCP App Engine 中将我的环境设置为 flex?

ERROR: (gcloud.app.deploy) Error Response: [7] The App Engine appspot and App Engine 
flexible environment service accounts must have permissions on the image 
[eu.gcr.io/["key file"]/appengine/default.20220514t124713:latest]. Please check 
that the App Engine default service account has the [Storage Object Viewer] role and the 
App Engine  Flexible service account has the App Engine Flexible Environment Service 
Agent role

我在 Travis CI 上使用正确的 .travis 格式进行构建,但收到此错误。我也尝试直接在 GCP 的 Cloud Shell 终端上构建它,但我有同样的错误。

这是我的 app.yaml 文件:

env: flex
runtime: custom
service: default
manual_scaling:
  instances: 1
resources:
  cpu: 1

这是我在 IAM 权限中的权限:

@DazWilkin 解决了。 为了解决它,我需要向 IAM 添加 ({project-id}@appspot.gserviceaccount.com),以正确构建项目。

“您可以确定它的电子邮件地址 ({project-id}@appspot.gserviceaccount.com),并且您应该能够简单地 re-add 它到 IAM 策略...给它 roles/editor。这是一个 Google-managed(拥有)服务帐户,因此您不能删除服务帐户本身,只能删除角色绑定。” - @DazWilkin