将 GCP Cloud Sql 与 GCP App Engine 连接时出错

问题描述 投票:0回答:1

我在将 GCP cloud sql 与 GCP App Engine 连接时遇到错误。它在本地使用谷歌身份验证代理工作正常,但是当使用gcloud应用程序部署部署应用程序时,以及成功部署后在服务器上出现错误

Error: connect ETIMEDOUT at Connection._handleTimeoutError (/layers/google.nodejs.yarn/yarn_modules/node_modules/mysql2/lib/connection.js:205:17) at listOnTimeout (node:internal/timers:569:17) at process.processTimers (node:internal/timers:512:7) 
 {
 errorno: 'ETIMEDOUT',
 code: 'ETIMEDOUT',
 syscall: 'connect',
 fatal: true
 },

在下面的代码中出现上述错误

const Sequilize = require("sequelize").Sequelize;
const dotenv = require("dotenv");
dotenv.config();


const sequilize = new Sequilize(
  process.env.DB_NAME,
  process.env.DB_USER,
  process.env.DB_PASSWORD,
  {
    host: process.env.DB_HOST, //db host public ip
    dialect: "mysql",
    socketPath: process.env.INSTANCE_CONNECTION, //`/cloudsql/INSTANCE_CONNECTION_NAME`,
  }
);

module.exports = { sequilize };

app.yml 代码

runtime: nodejs
env: flex

runtime_config:
  operating_system: "ubuntu22"
  runtime_version: "18"

beta_settings:
  cloud_sql_instances: /cloudsql/INSTANCE_CONNECTION_NAME
mysql google-cloud-platform google-app-engine google-cloud-sql
1个回答
0
投票

App Engine 使用远程 Cloud SQL 数据库创建本地隧道。因此,主机必须是127.0.0.1。

© www.soinside.com 2019 - 2024. All rights reserved.