创建具有权限的Google服务帐户后,如下所示 - 部署失败并显示消息。我无法理解这出错的地方。
====
$ gcloud iam service-accounts get-iam-policy cdemail@appid.iam.gserviceaccount.com
bindings:
- members:
- serviceAccount:cdemail@appid.iam.gserviceaccount.com
role: roles/owner
etag: Bxxxxxxxxg=
====
$ gcloud auth activate-service-account --key-file ../a.json
Activated service account credentials for: [cdemail@appid.iam.gserviceaccount.com]
$ gcloud app deploy
ERROR: (gcloud.app.deploy) You do not have permission to access app [appid].
答案 0 :(得分:19)
现在已经开始工作了。
$ gcloud app deploy --log-http --verbosity=debug
失败的原因似乎与启用App Engine API有关(链接显示在命令输出中)。启用api - 然后再次尝试部署(这次没有--log-http,因为这会导致gcloud崩溃)。
您可以通过Google Cloud Platform API控制台页面启用“Google App Engine管理API”。 https://console.cloud.google.com/apis/api/appengine.googleapis.com/
答案 1 :(得分:5)
运行以下命令以检查项目与正确帐户关联的天气。
gcloud config list
如果与帐户无关,请使用
gcloud auth login
使用正确的项目帐户进行配置。
答案 2 :(得分:3)
对于那些尝试使用服务帐户和gcloud命令进行部署的用户,您将需要设置以下三个角色:
App Engine Deployer
Storage Admin
Cloud Build Editor
仅App Engine Deployer角色会授予以下权限: 使用Admin API进行部署。要使用其他App Engine工具,例如 gcloud命令,您还必须具有Storage Admin角色和Cloud 构建编辑者角色。
答案 3 :(得分:1)
添加到npr的答案。如果您尚未为自己的默认应用程序/项目进行身份验证(在启用API之后),请在命令中运行此命令:
gcloud auth application-default login
答案 4 :(得分:1)
如果您尝试部署节点应用程序,则可能仍然不够。我的API已启用,我遵循了GCP's instructions上的所有内容,但是仍然出现<router-view>
错误。最后,通过向服务帐户添加两个角色来解决此问题: