从应用引擎实例连接到Google云SQL

Yon*_*aor 5 postgresql google-app-engine elixir google-cloud-sql

我想在谷歌应用程序引擎灵活的环境中运行一个elixir应用程序.

我还有一个在谷歌云SQL上运行的postgresql服务器.

我能够在docker容器中部署应用程序.问题是我找不到如何配置与postgresql服务器的连接.

据我所知,应用程序引擎实例运行云SQL代理但我在实例中不断收到以下错误:[错误] Postgrex.Protocol(#PID <0.232.0>)无法连接:**(DBConnection.ConnectionError )tcp connect(localhost:5432):连接被拒绝 - :econnrefused

phl*_*are 1

我在使用 phoenix/elixir 应用程序时遇到了同样的错误,我试图将其从容器引擎移出并进入应用程序引擎灵活的环境,只是无法弄清楚使用什么作为主机名。

在我的应用程序引擎中的 php 应用程序中,我只能使用:/cloudsql/projectname:region:dbname相同的数据库,但它似乎不适用于 elixir

我还尝试直接使用云sql实例的IP地址,但这也不起作用。

在我的 app.yaml 中我有

env_variables:
  MIX_ENV: staging
  port: 8080
  DB_ENV_POSTGRES_HOST: :/cloudsql/projectname:region:dbame
  DB_ENV_POSTGRES_USER: userman
  DB_ENV_POSTGRES_PASSWORD: password
Run Code Online (Sandbox Code Playgroud)

conf/staging.exs我有

config :guidebooks_api, GuidebooksApi.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: System.get_env("DB_ENV_POSTGRES_USER") || "postgres",
  password: System.get_env("DB_ENV_POSTGRES_PASSWORD") || "postgres",
  hostname: System.get_env("DB_ENV_POSTGRES_HOST") || "localhost",
  database: "databasename",
  pool_size: 10,
  types: GuidebooksApi.PostgresTypes
Run Code Online (Sandbox Code Playgroud)