sql - 在没有网络授权的情况下使用 Google Cloud SQL

标签 sql django postgresql cloud google-cloud-sql

我将 Google Cloud PostgreSQL 与我在本地开发的 django rest api 一起使用,为了能够连接到数据库,您需要输入一个 IP 地址,说明您希望从哪里进行连接。我和我的团队正在使用动态 IP 地址,我们应该每次在云界面中更改 IP 地址才能连接。还有别的办法吗?我想试试 SSL,但它太复杂了。有什么想法吗? 谢谢

编辑: 我正在尝试使用 SSL,这是我添加到 settings.py 中的内容,但出现错误:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'HOST': '00.000.00.000',
    'NAME': 'dbname',
    'USER': 'username',
    'PASSWORD': 'mypassword',
    'OPTIONS': {
        'sslmode': 'require',
        'ssl': {
            'ca': 'certs/server-ca.pem',
            'cert': 'certs/client-cert.pem',
            'key': 'certs/client-key.pem'
            }
    },
}

ssl 文件位于名为 certs 的文件夹中,该文件夹与 settings.py 文件位于同一目录中。

这是我在运行服务器时遇到的错误:

django.db.utils.ProgrammingError: invalid dsn: invalid connection option "ssl"

最佳答案

尝试使用 cloud proxy这将允许使用经过身份验证的连接,但是您无需担心 IP 或身份验证方面的问题。

使用云代理 - 允许与您的 Cloud SQL 实例建立专用连接(这是经过身份验证的连接)。正确设置后,只需将您的应用程序指向代理,所有流量都将发送到后端 Cloud SQL 实例。

对于奖励积分,可以使用 VM 元数据动态配置云代理来设置环境。我以前在 Terraform 中像这样使用它,它用于指向特定的云 sql 实例,它节省了很多工作量。

关于sql - 在没有网络授权的情况下使用 Google Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061852/

相关文章:

mysql - 如何在mysql case函数中执行子查询?

sql - 使用 LIKE 获取仅包含特定字符的记录

python - 为什么它找不到我的 celery 配置文件?

java将大量数据写入excel文件的最佳方法

postgresql - 臭名昭著的java.sql.SQLException:未找到合适的驱动程序

python - Django 正在为 Postgres 生成无效的 SQL

php - 在 PHP 中使用参数形成 URL 的问题

MySQL - 如果查询结果的顺序与另一个查询结果的顺序相同,如何比较?

python - 无法运行 django 项目下的 python 文件

python - Django Postgres ArrayField makemigrations