正在查看Cloud sql的新google node sql连接器。
它告诉像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',
type: '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();
在调试connector.getOptions({ instanceConnectionName: 'my-project:region:my-instance', type: 'PUBLIC' });
时,它似乎返回一个结构对象,{ ssl: boolean; stream: StreamFunction; }
,并将其传递给新的Pool构造函数。但是传递给Pool构造函数的Client对象在文档中没有任何名为stream的参数。
所以我试图了解谷歌节点sql连接器如何认证pg到GCP。想要这个信息,因为我正试图使用谷歌节点sql连接器来验证节点中的其他一些ORM工具。
我期望connector.getOptions({ instanceConnectionName: 'my-project:region:my-instance', type: 'PUBLIC' });
返回其他库已经支持的对象,以便我们可以使用这些配置对其他库进行认证。
云SQL节点连接器使用应用程序默认凭据。有关Node的详细信息,请参阅此处。
如果你的用例没有被覆盖,你可以在repo上提交一个问题。