文档表明,Hasura需要使用
例如:
看起来我的问题是,Google Cloud SQL 的服务器实例连接名称类似于
我目前正在向容器添加
// 编辑感谢评论,beta8 大部分做到了,但我也错过了
HASURA_GRAPHQL_DATABASE_URL
环境变量设置Postgres连接字符串。例如:
docker run -d -p 8080:8080 \
-e HASURA_GRAPHQL_DATABASE_URL=postgres://username:password@hostname:port/dbname \
hasura/graphql-engine:latest
看起来我的问题是,Google Cloud SQL 的服务器实例连接名称类似于
PROJECT_ID:REGION:INSTANCE_ID
,但它不是 TCP。从 Cloud Run 文档(https://cloud.google.com/sql/docs/postgres/connect-run)中,我得到了以下示例:postgres://<db_user>:<db_pass>@/<db_name>?unix_sock=/cloudsql/<cloud_sql_instance_name>/.s.PGSQL.5432
,但它似乎不起作用。有什么想法吗?我目前正在向容器添加
cloud_sql_proxy
作为解决方法,以便我可以连接到 TCP 127.0.0.1:5432,但我正在寻找与 Google Cloud SQL 的直接连接。// 编辑感谢评论,beta8 大部分做到了,但我也错过了
set-cloudsql-instances
参数: https://cloud.google.com/sdk/gcloud/reference/beta/run/deploy#--set-cloudsql-instances
完整的 Cloud Run 命令:gcloud beta run deploy \
--image gcr.io/<PROJECT_ID>/graphql-server:latest \
--region <CLOUD_RUN_REGION> \
--platform managed \
--set-env-vars HASURA_GRAPHQL_DATABASE_URL="postgres://<DB_USER>:<DB_PASS>@/<DB_NAME>?host=/cloudsql/<PROJECT_ID>:<CLOUD_SQL_REGION>:<INSTANCE_ID>" \
--timeout 900 \
--set-cloudsql-instances <PROJECT_ID>:<CLOUD_SQL_REGION>:<INSTANCE_ID>
{code: postgres-error, error: connection error, internal: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/cloudsql/<instance_name>/.s.PGSQL.5432"? , path: $}
- 实例名称应该是正确的。有什么想法吗?我已经添加了 Cloud SQL 权限。 - wiesson