Лямбда-запрос Redshift всегда занимает минимум ~ 10 с - PullRequest
0 голосов
/ 07 мая 2019

У меня есть простая лямбда-функция, которая запрашивает базу данных Redshift. Сам запрос занимает <1 с, если я делаю это из прямого соединения с sqlWorkbench. Один и тот же запрос всегда занимает> 10 секунд при выполнении запроса через функцию Lambda.

База данных Redshift внутри VPC с доступом к Интернету. Лямбда-функция живет вне VPC.

Это упрощенный лямбда-код:

const db = require('./functions/dbFunctions');
const database = require('./config/database');

var handler = function (event, context, callback) {
    callEndpoint(event, callback, database);
};

var callEndpoint = function (event, callback, database) {
    var method = event.context['resource-path'].substring(1).toUpperCase();
    switch (method) {
        case "WEB/GETCLIENTSALT":
            db.getClientSalt(event, callback, database);
            break;
    }
};

module.exports = {
    handler: handler,
    callEndpoint: callEndpoint
};

dbFunctions:

var getClientSalt = function (event, callback, db) {
    var body = event['body-json'];

    var userDet = {
        userEmail: body.userEmail
    };

    var respSalt = {
        result: "",
        clientSalt: ""
    };

    var sqlSalt = `SELECT salt from user_table WHERE user_email = $1 limit 1`;

    db.mobileAdhoc().one(sqlSalt, [userDet.userEmail])
        .then(result => {
            // Handle Success
        })
        .catch(() => {
            // Handle Error
        });
};

module.exports = {
    getClientSalt: getClientSalt
};

Я читал о лямбда-холодных запусках, но вышеприведенная функция занимает минимум 10 секунд, даже если вызывается несколько раз подряд. Я даже добавил код в index.js, чтобы проверить, что database.js инициализируется только один раз и повторно используется при последовательных вызовах (проверка того, что лямбда остается горячей).

Есть ли какая-то простая конфигурация, которую мне не хватает? Я ожидаю многого от Lambda-> Redshift? Это клиентское приложение, и эти времена ожидания неприемлемы.

...