使用服务帐户从Compute Engine部署App Engine Flex

mra*_*aty 0 google-app-engine google-compute-engine google-cloud-platform app-engine-flexible

我已经设置了一个计算引擎实例,用于集中维护和更新App Engine Flex实例.其中一个原因是将数据库和其他凭据保留在Google Project中,而不是将它们存储在本地开发计算机上.

当我尝试使用flex进行部署时

gcloud app deploy
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

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.
Run Code Online (Sandbox Code Playgroud)

服务帐户是默认的计算引擎帐户,我在IAM中为其启用了编辑角色.我也尝试启用所有App Engine角色,但它没有改变这种情况.

有没有办法从Compute Engine进行部署,如果是,那么正确的凭据是什么,或者我在这里错过了一些步骤?

nei*_*ilH 5

我创建了一个新的计算引擎实例,并尝试在运行时发出相同的命令.我也遇到了同样的问题.以下是我设法解决它的方法.

1)停止实例

2)导航到IAM>服务帐户>创建服务帐户

3)创建一个新的服务帐户,并确保除了"存储管理员","项目编辑器"和"云容器生成器编辑器"之外,还可以为服务帐户添加"App Engine管理员"或"App Engine部署者"的角色.因此,总共应该为服务帐户分配至少4个角色,以及您认为应用程序可能需要的任何其他角色.

4)编辑已停止的实例(从步骤1开始),并将服务帐户更改为您创建的新服务帐户.

重新启动实例时,您现在应具有正确的权限/角色,以从实例部署App Engine Flex App.

存在授权问题,因为计算引擎默认服务帐户未分配将应用程序部署到App Engine flex所需的角色,因为此过程中使用了各种API.通过将App Engine Flex部署所需的角色分配给新的服务帐户,然后将服务帐户添加到实例,该实例将具有与App Engine Flex部署所需的其他GCP API进行交互所需的授权.