我已经设置了一个计算引擎实例,用于集中维护和更新App engine Flex实例。这样做的一个原因是将数据库和其他凭证保存在Google Project中,而不是将它们存储在本地开发机器上。
当我尝试使用flex部署时
gcloud app deploy我得到一个错误
ERROR: (gcloud.beta.app.deploy) Permissions error fetching application [<project here>]. Please make sure you are using the correct project ID and that you have permission to view applications on the project.服务帐户是默认的计算引擎帐户,我已在IAM中为其启用了编辑角色。我还尝试启用所有App Engine角色,但没有改变这种情况。
有没有办法从Compute Engine进行部署?如果有,正确的凭据是什么?或者我在这里遗漏了一些步骤?
发布于 2018-02-21 23:18:59
我创建了一个新的Compute Engine实例,并尝试在您运行时发出相同的命令。我也遇到了同样的问题。下面是我解决这个问题的方法。
1)停止实例
2)导航到IAM >服务帐户>创建服务帐户
3)创建一个新的服务帐户,并确保您在该服务帐户中添加了“App Engine Admin”或“App Engine Deployer”的角色,以及“Storage Admin”、“Project Editor”和“Cloud Container Builder Editor”的角色。因此,总共应该为服务帐户分配至少4个角色,再加上您认为应用程序可能需要的任何其他角色。
4)编辑已停止的实例(从步骤1开始),将服务帐号更改为您创建的新服务帐号。
当您重新启动实例时,您现在应该拥有正确的权限/角色,以便从实例部署您的App Engine Flex App。
存在授权问题,因为Compute Engine默认服务帐户没有分配到将应用程序部署到App Engine flex所需的角色,因为在此过程中使用了各种API。通过将App Engine Flex部署所需的角色分配给一个新的服务帐户,然后将该服务帐户添加到实例中,该实例就拥有了与App Engine Flex部署所需的其他GCP API进行交互所需的授权。
https://stackoverflow.com/questions/48904025
复制相似问题