使用Node.js连接到云SQL并不总是那么简单.
根据上下文的不同,有时您必须连接到Unix域套接字,允许列出用于TCP连接的IP地址,并在本地运行Cloud SQL Auth代理.确保这些连接的安全是另一个挑战:您可能必须管理SSL证书、防火墙规则、IP地址等.
有没有推荐的Node.js安全便捷接入云SQL的方法?
使用Node.js连接到云SQL并不总是那么简单.
根据上下文的不同,有时您必须连接到Unix域套接字,允许列出用于TCP连接的IP地址,并在本地运行Cloud SQL Auth代理.确保这些连接的安全是另一个挑战:您可能必须管理SSL证书、防火墙规则、IP地址等.
有没有推荐的Node.js安全便捷接入云SQL的方法?
是的,确实有Cloud SQL Node.js Connector,这是一个Node.js包,它使所有三个受支持的数据库引擎(Postgres、MySQL和SQL Server)在任何地方(本地计算机、Cloud Run、App Engine、Cloud Functions等)都可以轻松且安全地连接到Cloud SQL.
Node.js连接器是云SQL连接库之一(在Python、Java和Go中也有).
连接器与其他方法有什么不同?
Cloud SQL连接库提供了following benefits个:
如何使用Node.js连接器...代码是什么样子的?
基本用法(使用pg)
import pg from 'pg';
import {Connector} from '@google-cloud/cloud-sql-connector';
const {Pool} = pg;
const connector = new Connector();
const clientOpts = await connector.getOptions({
instanceConnectionName: 'my-project:region:my-instance',
ipType: 'PUBLIC',
});
const pool = new Pool({
...clientOpts,
user: 'my-user',
password: 'my-password',
database: 'db-name',
max: 5
});
const {rows} = await pool.query('SELECT NOW()');
console.table(rows); // prints returned time value from server
await pool.end();
connector.close();
有关更多使用示例(MySQL、SQL Server、自动IAM授权),请参阅Cloud SQL Node.js Connector's detailed README.