我将 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/