使用 TCP 的 App Engine PostgreSQL 连接错误



我在Google App Engine中部署了一个Python 3应用程序,灵活的环境。

我正在使用psycopg2连接到托管在Google cloud SQL中的PostgreSQL实例。

我在从Google App Engine连接到PostgreSQL时遇到问题。

云 SQL 代理似乎初始化正常,但它绑定到0.0.0.0

Listening on 0.0.0.0:5432 for projectID:us-central1:my-db

尝试在127.0.0.1localhost上连接不起作用。连接被拒绝。

有效的方法是使用 docker(

应用程序引擎灵活环境在下面使用 docker(默认 IP 172.17.0.1(来自 docker0 适配器(

使用该IP地址连接到Cloud SQL似乎如果有人决定更改它,它会咬我的屁股。

为什么会这样?

使用默认 docker0 适配器的 IP 地址是否是可行的长期解决方案?

除了切换到基于socket的连接而不是tcp方法之外,还有其他选择吗?

听起来像是在主机上运行 Cloud SQL 代理,同时尝试从容器内运行应用程序。它无法连接到代理的原因是127.0.0.1引用 docker 的环回接口,而代理绑定到主机的接口。172.17.0.1是容器可用于访问主机接口的地址。

一种替代方法是使用主机网络(https://docs.docker.com/network/host/(,通过传入--network host。这将导致主机的接口用于应用程序。

我已经从使用TCP作为连接方法切换到使用Unix套接字。

TCP 问题似乎是应用引擎灵活环境中的错误。但这是一个测试版功能(它在app.yaml中的名称为beta_settings(,我并不认为谷歌会修复它。

我也不想承诺将来某个时候可以更改的 IP 地址作为解决方法。

相关内容

  • 没有找到相关文章

最新更新