首页 > 解决方案 > 使用 Sequelize 通过 SSL 连接到 CloudSQL

问题描述

我需要将 Lambda 上的节点 js 应用程序连接到 Google Cloud SQL 中的 PSQL 数据库。

节点 js 应用程序使用 Sequelize,我无法找到有关如何在 sequelize 上呈现 SSL 信息的任何指导。

这就是 Cloud SQL 希望我指定的内容:

  psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=[HOST ID] \
      port=5432 \
      user=postgres dbname=postgres"

这是我目前在节点 js 应用程序上一直超时的内容:

const sequelize = new Sequelize(
  'postgres',
  'postgres',
  'password',
  {
    host: '[HOST ID]',
    dialect: 'postgres',
    dialectOptions: {
      ssl: {
        key: cKey,
        cert: cCert,
        ca: cCA,
      }
    }
  },
);

这是我收到的错误消息:

Unhandled rejection SequelizeConnectionError: connect ETIMEDOUT 35.232.250.60:5432
    at connection.connect.err (/Users/stephanielee/Desktop/blag/dist/node_modules/sequelize/lib/dialects/postgres/connection-manager.js:154:24)
    at Connection.connectingErrorHandler (/Users/stephanielee/Desktop/blag/dist/node_modules/pg/lib/client.js:174:14)
    at Connection.emit (events.js:182:13)
    at Connection.EventEmitter.emit (domain.js:442:20)
    at Socket.reportStreamError (/Users/stephanielee/Desktop/blag/dist/node_modules/pg/lib/connection.js:72:10)
    at Socket.emit (events.js:182:13)
    at Socket.EventEmitter.emit (domain.js:442:20)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)

标签: node.jssequelize.jsgoogle-cloud-sql

解决方案


推荐阅读