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

时间:2018-02-21 10:51:00

标签: google-app-engine google-cloud-platform google-compute-engine app-engine-flexible

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

当我尝试使用

进行Flex部署时
14 10 1950

我收到错误

gcloud app deploy

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

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

1 个答案:

答案 0 :(得分:5)

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

1)停止实例

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

3)创建一个新的服务帐户并确保为“App Engine管理员”或“App Engine部署者”添加角色'除了“存储管理员”,“项目编辑器”和“#39;项目编辑器'和#Cloud Container Builder编辑器'到服务帐户。因此,总共应该为服务帐户分配至少4个角色,以及您认为应用程序可能需要的任何其他角色。

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

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

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