【发布时间】:2020-04-29 13:40:24
【问题描述】:
根据文档,我有一个 postgreSQL CLoud SQL 实例,我通过 UNIX 套接字和来自 Cloud Run 容器的实例名称连接到该实例。使用公共 IP,此连接可以正常工作。我希望关闭公共 IP 并且只有一个私有 IP,因此我不会为以后的公共 IP 付费。
当我第一次创建 Cloud SQL 实例时,我只启用了公共 IP。几天后,我启用了私有 IP。对于私有 IP 的关联网络,我接受了默认值,因为 Cloud Run 实例在同一个项目中。
当我关闭公共 IP 时,我的应用程序无法再连接到 Cloud SQL 实例。我收到连接被拒绝错误:
sqlalchemy.exc.InterfaceError: (pg8000.core.InterfaceError) ('communication error', ConnectionRefusedError(111, 'Connection refused'))
如上所述,我确实按照从 Cloud Run 连接到 Cloud SQL 页面上的说明进行操作:
https://cloud.google.com/sql/docs/postgres/connect-run
我什至在关闭公共 IP 并且只有私有 IP 可用后运行 gcloud 命令来更新现有部署的修订版,但没有任何区别。
从 Cloud Run 连接到 Cloud SQL 是否需要公共 IP?我在连接文档页面中没有看到。还是在尝试切换到只有私有 IP 时我错过了其他什么?还是我需要在没有公共 IP 的情况下创建一个新的 Cloud Instance,然后再按照说明通过实例名称连接 Cloud Run?
【问题讨论】:
标签: google-cloud-platform google-cloud-sql google-cloud-run