Лямбда, использующая Vandium для вызова другой лямбды, не ждет ответа - PullRequest
0 голосов
/ 03 октября 2018

У меня есть Foo лямбда, использующая Vandium для вызова другого Bar лямбда, например:

'use strict';
const aws = require('aws-sdk');
const vandium = require('vandium');

const parameterValidation = {
    body: {
        foo: vandium.types.string().required(),
    }
};

exports.foo = vandium.api()
    .callbackWaitsForEmptyEventLoop(false)
    .POST(parameterValidation, (event) => {
        console.log('Recieved POST request - invoking bar lambda...');
        new aws.Lambda().invoke({
            FunctionName: 'bar',
            Payload: JSON.stringify(event.body),
        }, (error, data) => {
            console.log('bar lambda returned to foo lambda...');
            if (error) {
                throw new Error('bar lambda returned an error');
            } else {
                return {
                    data: data.Payload.data,
                };
            }
        });
        console.log('foo lambda did not wait for bar lambda to return!');
    });

Это Bar лямбда:

'Use strict';

exports.handler = (event, context, callback) => {
    callback(null, {
        data: "yay",
    });
};

Когда я выполняю лямбду Foo с лямбда-тестом прокси-сервера API-шлюза, он печатает foo lambda did not wait for bar lambda to return!.Как я могу заставить foo lambda получить значение из бара lambda?

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