无法将应用程序部署到App Engine,失败并显示“无法写入分段存储区”和“无法解析资源”

时间:2020-06-02 04:27:31

标签: google-app-engine gcloud google-iam

我正在使用gcloud SDK尝试将Dockerfile和app.yaml部署到应用程序引擎。我的App Engine服务帐户具有“项目编辑器”,“存储管理员”和“ SQL客户端”角色,并且全部启用了Cloud Build,App Engine和App Engine Flexible API。尽管如此,我仍然在gcloud beta中遇到此错误:

    ERROR: (gcloud.beta.app.deploy) Error Response: [7] Unable to write to staging bucket staging. 
   <project name>.appspot.com. Please grant access to the App Engine service account on your project 
   by visiting https://console.developers.google.com/storage/browser?project=<project name>

和香草gcloud的这个(不太清楚的)错误:

ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: unable to resolve source

在另一个沙盒/开发项目中,我没有这个问题,但是在这个生产项目中,情况并非如此。手动添加SA毫无区别。奇怪的是,部署正在将文件写入暂存区,所以我不相信这个错误。似乎失败的地方是紧随其后的步骤-也许App Engine Flexible服务帐户代理想要访问它们;可能需要将Dockerfile继续传递到Cloud Build SA;但无论如何,我都尝试过将授予存储桶访问App Engine和Cloud Build SA及其代理的权限组合在一起的所有方法,但是这种方法无效。

我的用户帐户分配了App Engine部署者角色,甚至用其编辑者角色模拟App Engine帐户也没有什么不同。 Cloud Build也具有App Deployer角色。

1 个答案:

答案 0 :(得分:0)

Vanilla GCloud的错误表明您的服务帐户可能缺少某些权限。尝试在项目中禁用和重新启用Cloud Build API,以便创建一个新的服务帐户。

这确保Cloud Build有权启动构建。

此外,请确保在尝试部署之前等待几分钟(例如10分钟左右),以便可以将权限传播到所有系统。