繁体   English   中英

使用云运行通过 django 中的云代理连接到云 sql 实例时出错

[英]Error while connecting to a cloud sql instance via cloud proxy in django using cloud run

我正在尝试为云运行中的 django 项目连接到 cloud-sql,该项目正在通过生产中的云运行进行部署。 然而 Django 给我一个错误说

Error: 'asia-south1' is not a valid port number.

我在settings.py中的数据库设置如下

if os.getenv('ENV') == 'PROD':
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'HOST': '/cloudsql/<PROJECT-NAME>:asia-south1:<INSTANCE-ID>',
            'PORT': '5432',
            'USER': <USER>,
            'PASSWORD': <PASSWORD>,
            'NAME': <DB_NAME>,
        }
    }

我看到一种可能的解决方案是将云代理连接重定向到 127.0.0.1:3306 但为此我必须在 docker 容器上安装云代理并进行身份验证,对吗? 这不是云运行为我们提供的没有任何麻烦的东西吗? 有没有在容器上安装云代理和重定向的情况下连接到云 sql 实例?

如何在此处的文档中看到,Cloud Run 的 Cloud SQL 连接打开了 Unix 套接字

正确配置后,您可以使用以下格式将服务连接到 Cloud SQL 实例的 unix 域套接字:/cloudsql/INSTANCE_CONNECTION_NAME。

因此,您的 Django 配置设置为通过 TCP 打开连接,从而查找 IP/DNS 和端口。

要将 Django 连接到 Unix 插座,您可以按照此示例/教程进行操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM