У меня есть 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?