【问题标题】:Need help: NodeJs app deployed on Google Cloud Run , unable to connect to Google Cloud SQL Instance需要帮助:NodeJs 应用部署在 Google Cloud Run 上,无法连接到 Google Cloud SQL 实例
【发布时间】:2021-03-22 16:25:55
【问题描述】:

我在下面有节点 Js 代码,它使用连接池连接到 PostgreSql 数据库:

const express = require("express");
const path = require("path");
var bodyParser = require("body-parser");
var cors = require("cors");

const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(cors());

const Pool = require("pg").Pool;

const pool = new Pool({
  user: "",
  host: "",
  database: "",
  password: "",
  port: 5432,
});

app.get("/get_que", (req, res) => {
  pool.query(
    "SELECT json FROM surveys where available = TRUE;",
    (error, results) => {
      if (error) {
        console.log(error);
      }
      res.json({ data: results.rows });
    }
  );
});

以上应用已部署在 Google Cloud Run 中并配置了 Google Cloud SQL(PostgresSql 连接),但无法从 Google Cloud Run 应用连接。

在本地使用 Cloud SQL 代理,我可以连接到云 sql 实例。

我在上面的应用程序的“host”参数中尝试了Cloud SQL实例的公共IP,它没有连接,

如何从上述部署在 Google Cloud Run 上的 NodeJs 应用连接到 Google Cloud SQL 实例?

【问题讨论】:

  • 您需要启用 Cloud SQL 的公共 IP 并通过 Cloud Run 连接选项卡设置连接。此外,您需要使用 unixsockets /cloudsql/ 进行连接
  • 我在部署修订版时已将 Cloud SQL 实例附加到云运行。现在,在我的代码中,在主机参数中我需要输入 '\cloudsql\'?
  • const Pool = require("pg").Pool; //下面是谷歌云 const pool = new Pool({ user: 'postgres', host: '/cloudsql//.s.PGSQL.5432', database: 'db1', password: 'password123 ' //端口:5432, });尝试了上面的主机参数,还向服务帐户添加了“SQL Client”角色。还是不行

标签: google-cloud-platform google-cloud-sql google-cloud-run


【解决方案1】:

即使在 Cloud SQL 实例中默认启用了公共 IP,也不允许使用任何网络。 See the adding authorized networks.

Connecting from Cloud Run 有非常详细的指南。

【讨论】:

  • 如何找到要添加到授权网络的IP地址?。我部署在云运行中的应用程序需要连接到 Cloud Sql 实例。我还添加了这个 SQL 实例,同时将应用程序部署到云运行。
  • 如果您将 Cloud SQL 连接名称与 Unix 套接字一起使用,则无需添加网络。
  • 如果要使用公网id,需要添加云运行服务的公网IP。 (一般你可以直接选择,因为它是自动完成的授权网络)
  • 谢谢。我删除了 /.s.PGSQL.5432 它工作正常。云运行会在运行时自动添加此值。所以需要再给上面的值加上后缀
猜你喜欢
  • 2021-12-25
  • 2019-09-16
  • 1970-01-01
  • 2019-10-28
  • 2020-11-20
  • 2021-08-10
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
相关资源
最近更新 更多