Google App Engine Flex 上的 Grafana 与 postgresql

Google App Engine Flex 上的 Grafana 与 postgresql

您好,我正在尝试将 grafana docker 容器部署到 google app engine flex。Grafana 将使用 postgresql(云 sql)作为内部数据库。

我目前正在使用这个 Dockefile:

FROM grafana/grafana:latest
ENV GF_SERVER_HTTP_PORT 8080
ENV GF_DATABASE_URL postgres://postgres:[email protected]:5432/grafana
ENV GF_DATABASE_TYPE postgres
EXPOSE 8080

以及这个 app.yaml:

runtime: custom
env: flex
service: grafana
beta_settings:
  cloud_sql_instances: miproj:europe-west1:midb=tcp:5432

我还激活了 Cloud SQL Admin API

做完之后

gcloud app deploy

但是我得到了

 msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp 127.0.0.1:5432: connect: connection refused"

我也尝试过

cloud_sql_instances: miproj:europe-west1:midb

ENV GF_DATABASE_URL postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana

但我明白

t=2019-05-09T10:12:56+0000 lvl=eror msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp: lookup port=5432: no such host"

但我认为这可能更多的是 grafana 如何解析主机名中间有“:”的连接链的问题。

知道我做错了什么吗?

答案1

有两种方法可以从 App Engine 连接到 Postgresql。您可以通过 TCP 或 Unix 套接字进行连接。App Engine柔性支持两者,标准仅支持套接字。当我查看您的 app.yaml 时,似乎您已经为 TCP 连接设置了正确的连接名称。

另一方面,您用作环境变量的连接字符串似乎是错误的。更改此内容:

postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana

到:

postgres://postgres:[email protected]:5432/grafana

Docker 使用 172.17.0.1 作为环回地址,而不是 127.0.0.1!详细概述可参见 Google 的cloudsql 文档

相关内容