gpt4 book ai didi

Google Cloud Run 中的 Django 找不到/云 sql 套接字

转载 作者:行者123 更新时间:2023-12-05 04:58:21 25 4
gpt4 key购买 nike

我有一个已构建的 dockerized django 应用程序,已上传到 GCR,然后部署为谷歌云运行服务。但是,启动时出现以下错误(来自云运行日志):

psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/cloudsql/kingdoms-289503:us-west1:kingdomsdb/.s.PGSQL.5432"?

我的 django 数据库设置如下所示:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'HOST': "/cloudsql/kingdoms-289503:us-west1:kingdomsdb",
'USER': "postgres",
'PASSWORD': "password",
'NAME': "postgres",
}
}

而且我已经确保创建到数据库的连接

cloudsql connection

据我所知,cloud run 应该神奇地挂载一个 at/cloudsql ,django 可以使用它来连接到 postgres,但错误暗示它没有被挂载。

是否有额外的配置需要我检查以确保套接字存在?是否有不涉及此套接字的连接到 cloudsql 的替代方法?

最佳答案

正如@glasnt 上面提到的,它也可能是 ACL 问题。服务帐户需要 Cloud SQL Client 角色。在默认情况下,Default compute service account 是以 compute@developer.gserviceaccount.com 结尾的主体。

我的问题是,我无法选择根据新手的直觉添加角色,即 Cloud Run 服务资源。相反,转到主 IAM 设置、IAM 选项卡,然后手动将权限添加到服务帐户。如果您在列表中没有看到服务帐户,因此无法编辑它的角色,您可以转到 Add +(顶部工具栏)并手动输入电子邮件地址。

关于Google Cloud Run 中的 Django 找不到/云 sql 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64043892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com