invoke
возвращает экземпляр AWS.Request
, который не будет автоматически выполнять запрос.Это представление запроса, который не отправляется до тех пор, пока не будет вызван send()
.
Вот почему последняя версия работает, а первая - нет.Запрос отправляется при вызове .promise()
.
// a typical callback implementation might look like this
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
// ... or you could process the promise() for the same result
lambda.invoke({
FunctionName: 'rock-function',
InvocationType: 'Event',
Payload: JSON.stringify({
queryStringParameters: {
id: c.id,
template: c.csvTemplate,
},
}),
}).promise().then(data => {
console.log(data);
}).catch(function (err) {
console.error(err);
});