REST звонок из лямбды часто очень медленный - PullRequest
0 голосов
/ 17 ноября 2018

Я не уверен, что здесь правильный вопрос или он лучше подходит для Super User.Однако, поскольку я думаю, что, возможно, что-то не так с моим кодом, я попробую это здесь.

Я создал небольшую лямбда-функцию прокси для вызова моего REST API.Я использую node.js и пакет запроса.Вот мой код:

exports.handler = function (request, context) {
    require('request').post({url: 'https://example.com/foo/bar', json:request, timeout:1000}, function(error, response, body){
        if(error) {
            console.log("Something went wrong:\n" + JSON.stringify(error, null, 2));
            context.succeed({failed:true})
        } else {
            console.log("Returning remote response:\n" + JSON.stringify(body, null, 2));
            context.succeed(body);
        }
    });

    console.log("Forwarding request to own backend:\n" + JSON.stringify(request, null, 2));
};

Это действительно ничего особенного, однако я подумал, что запрос должен быть отменен после 1000 мс.Но я часто вижу, что выполнение было отменено из-за тайм-аута 3000 мс.Я увеличил его до 30000 мс, и он начинает работать.Иногда лямбда выполняется в течение 500 мс, но в следующий раз она занимает 3100 мс.Я не понимаю, почему это происходит.Пожалуйста, просветите меня.

1 Ответ

0 голосов
/ 17 ноября 2018

это, вероятно, обычное поведение, называемое холодным стартом

При использовании AWS Lambda подготовка контейнера вашей функции может занять> 5 секунд.Это делает невозможным гарантированную <1-секундную реакцию на события, такие как API-шлюз, DynamoDB, CloudWatch, S3 и т. Д.</strong> о том, что это такое и как с этим бороться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...