Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google云函数访问云SQL PostgreSQL数据库超时_Postgresql_Google Cloud Platform_Google Cloud Functions_Google Cloud Sql - Fatal编程技术网

Google云函数访问云SQL PostgreSQL数据库超时

Google云函数访问云SQL PostgreSQL数据库超时,postgresql,google-cloud-platform,google-cloud-functions,google-cloud-sql,Postgresql,Google Cloud Platform,Google Cloud Functions,Google Cloud Sql,这是我的谷歌云功能: async function getPSQLdata() { const pg = require('pg'); var pgConfig = { user: 'postgres', password: '[MY PASSWORD]', database: '[MY DB NAME]', host: '[PUBLIC IP ADDRESS OF DB INSTANCE]' }; var pgPool; if (!pg

这是我的谷歌云功能:

async function getPSQLdata() {
  const pg = require('pg');

  var pgConfig = {
    user: 'postgres',
    password: '[MY PASSWORD]',
    database: '[MY DB NAME]',
    host: '[PUBLIC IP ADDRESS OF DB INSTANCE]'
  };

  var pgPool;

  if (!pgPool) {
    pgPool = new pg.Pool(pgConfig);
  }

  const scores = await pgPool
    .query("SELECT * from table")
    .then(res => console.log(res.rows[0]))
    .catch(e => console.error(e.stack));
}

exports.dailyFill = async function main() {
  await getPSQLdata();
};
谷歌云日志显示:“函数执行耗时60003毫秒,状态为‘超时’”

到目前为止,我所尝试的:

  • 我已经在GCP项目中启用了云SQL管理API
  • 我已经在GCP项目中启用了云SQL API
  • 我已将Google Cloud Function service帐户添加到IAM中,作为“云SQL客户端”和“项目编辑器”角色

云函数提供了一种通过云SQL代理连接数据库的方法,请参见此处的详细信息这是首选方法

关键区别在于,您不需要定义主机,而需要使用以下命令


socketPath:'/cloudsql/INSTANCE\u CONNECTION\u NAME'

您的函数应该返回一个承诺,否则它将超时。将
getPSQLdata
中的最后一条语句更改为
return pgPool.query(“SELECT*from table”)。然后(res=>console.log(res.rows[0])。catch(e=>console.error(e.stack))
并将此函数导出为
exports.dailyFill=getPSQLdata
Thx。“将此函数导出为exports.dailyFill=getPSQLdata”是什么意思?同意此最佳做法,如果愿意,也可以使用专用IP。在任何情况下,使用公共IP(我想是开放的)绝对不推荐!请务必确定,您是否用云SQL实例详细信息中的连接名称替换了实例\连接\名称?其格式应为: