Cloud Functions连接AlloyDb报错ECONNREFUSED求助排查
连接AlloyDB到Cloud Functions时遭遇ECONNREFUSED错误,求排查遗漏配置
背景
我参照Google Cloud官方的PostgreSQL连接Cloud Functions文档操作,但文档里没提Cloud Functions必须创建连接器——而这步实际是必要的。目前helloworld示例能正常运行,但尝试连接AlloyDB查询用户数据时,出现了连接拒绝错误。
报错信息
Error: connect ECONNREFUSED 127.0.0.1:543
已完成的配置
- 环境变量设置:
INSTANCE_UNIX_SOCKET : /cloudsql/{my-project-id}:us-east4:quickstart-instance DB_NAME: {db_name} DB_USER: {db_user} DB_PASS: {my_pwd}
- 已将Runtime服务账号配置为拥有
AlloyDb_Admin权限的账号
函数代码
package.json
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "knex": "3.1.0", "pg": "8.11.5" } }
index.js
const Knex = require('knex'); functions.http('getUsers', async (req, res) => { const createUnixSocketPool = async config => { return Knex({ client: 'pg', connection: { user: process.env.DB_USER, // e.g. 'my-user' password: process.env.DB_PASS, // e.g. 'my-user-password' database: process.env.DB_NAME, // e.g. 'my-database' host: process.env.INSTANCE_UNIX_SOCKET, // e.g. '/cloudsql/project:region:instance' }, ...config, }); }; const knex = await createUnixSocketPool() knex('users').select('*') .then(rows => { console.log(rows); }) .catch(err => { console.error(err); }); });
相关配置截图
- 网络配置:

- 连接器详情:

- 默认防火墙配置:

请问我还可能遗漏了哪些配置?
内容的提问来源于stack exchange,提问作者bstras21
相关产品推荐
相关产品推荐

