Cloud 运行 上使用 Cloud SQL PostgreSQL DB 的 Django 应用程序出错 - 无法连接到数据库

Error with Django application on Cloud Run using Cloud SQL PostgreSQL DB - cannot connect to database

我在 Google Cloud on Cloud 运行 上有这个 Django 项目。它应该 连接到云 SQL PostgreSQL 数据库并工作,但它没有。这是settings.py的数据库部分(我已经删除了私有数据):

DATABASES = {
  'default': {   
      'ENGINE': 'django.db.backends.postgresql_psycopg2',
      'NAME': 'db',
      'USER': 'user',
      'PASSWORD': 'password',
      'HOST': '/cloudsql/project:europe-west4:instance',
      'PORT': '5432',
  }
}

但是,当我尝试执行任何与数据库相关的操作(例如,登录)时,它会抛出错误

OperationalError at /accounts/login/
could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/cloudsql/*project*:europe-west4:*instance*/.s.PGSQL.5432"?

如果我从 HOST 中删除 /cloudsql/ 它会给出错误

OperationalError at /accounts/login/
could not translate host name "*project*:europe-west4:*instance*" to address: Name or service not known

当我使用 Cloud SQL 代理 exe 在我的本地计算机上进行测试时,它可以正常工作。但是,当我将它部署到云端时 运行 它没有。

尝试在 host 参数中使用完整的 url

您是否已启用从 Cloud 运行 连接到 Cloud SQL 实例?

尝试运行

gcloud run services update [your cloud run service name] \
  --add-cloudsql-instances [project:region:instance]

同时检查您的 Cloud 运行 服务帐户是否具有 Cloud SQL Client 权限。有关如何执行此操作的详细信息,请参阅 this documentation