在单独的项目中从App Engine连接到GCP Cloud SQL

时间:2017-06-18 21:30:20

标签: python postgresql google-app-engine google-cloud-sql

我正在尝试从单独的GCP项目中的GCP Google App Engine灵活环境连接到GCP Postgres Cloud SQL实例。我正在使用Python。

instructions表示这需要在Postgres Cloud SQL项目中添加默认的App Engine服务帐户作为IAM成员。

文档继续说明:

  

部署后,您的应用程序使用内置于App Engine灵活环境的Cloud SQL Proxy与您的Cloud SQL实例进行通信。

但是,我没有从GAE成功连接到Cloud SQL的运气。我尝试了多种主机地址(例如localhost<external-ip-address>/cloudsql/<INSTANCE_CONNECTION_NAME>等。但似乎没有任何效果。

我想到了几个问题:

  • 我是否需要手动为GAE实例提供服务帐户密钥?

  • 连接参数或DSN字符串的Cloud SQL实例的实际主机位置是什么?文档引用/cloudsql/<INSTANCE_CONNECTION_NAME>虽然我对此没有运气。

  • 我是否需要创建一个共享网络来链接项目?

1 个答案:

答案 0 :(得分:1)

我刚刚复制了您的用例场景,并且成功地将一个项目的Cloud SQL数据库与另一个项目的Cloud App Engine连接起来。

重现此步骤的步骤如下:

在复制过程中,您可能遇到的问题。可能您没有启用第二个项目(仅托管App Engine的项目)的API。

要验证这一点,您只需要进入托管应用引擎的机器,然后运行docker ps -a即可获得托管cloud-sql-proxy的Docker容器的ID。然后使用该ID运行docker logs -f ID_OF_THE_CONTAINER,您将看到Cloud SQL代理中是否有错误。如果您禁用了API,则只需启用它并再次部署即可。