【问题标题】:How should I handle a db connection in Javascript / AWS Lambda我应该如何处理 Javascript / AWS Lambda 中的数据库连接
【发布时间】:2017-02-22 16:37:02
【问题描述】:

在我的 JS Lambda 函数中,我有以下内容...

import utils from './utils'

index.handler() {
  return utils.initDB()
  .then(function() {
    return utils.doSomething()

utils.js:

var dbConfig = null;
var knex = null;

function initDB() {
  dbConfig = require('../db');
  knex = require('knex')(dbConfig);
  return;
}

基本上,我应该如何传递knex 对象?在 utils 文件中可以作为全局变量吗?我应该将它返回给处理程序并将其传递给每个smsUtils.doX 调用吗?我认为这可能会导致数据库连接/池出现问题,但我不知道如何找出答案。

【问题讨论】:

    标签: javascript mysql amazon-web-services lambda


    【解决方案1】:

    对于将来偶然发现此问题的任何人(即我在谷歌上搜索如何在一年内再次执行此操作时):

    http://blog.rowanudell.com/database-connections-in-lambda/ 解释了 Lambda 中的连接重用。应该看起来像这样:

    const pg = require('pg');
    
    const client = new pg.Client('postgres://myrds:5432/dbname');  
    client.connect();
    
    exports.handler = (event, context, cb) => {  
      client.query('SELECT * FROM users WHERE ', (err, users) => {
        // Do stuff with users
        cb(null); // Finish the function cleanly
      });
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      相关资源
      最近更新 更多