В настоящее время
У меня есть lambdaX , который вызывает другой lambdaY .
Lambda X:
"use strict";
const AWS = require('aws-sdk');
AWS.config.region = 'ap-southeast-2';
var lambda = new AWS.Lambda();
exports.handler = async (event) => {
//the final return
var dataToSave = []
//data to be added to array
let returnLoad;
var params = {
FunctionName: 'lambdaY', // the lambda function we are going to invoke
InvocationType: 'RequestResponse',
LogType: 'Tail', //Set to Tail to include the execution log in the response.
};
try {
await lambda.invoke(params, function(err, data) {
if (err) {
console.log("Error");
console.log(err, err.stack);
} else {
console.log("Success");
console.log(data);
returnLoad = data.Payload;
}
}).promise();
dataToSave.push(returnLoad);
} catch (err) {
console.log('some error occurred...');
}
const response = {
statusCode: 200,
body: JSON.stringify(dataToSave)
};
return response;
}
Lambda Y:
exports.handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
Проблема
По какой-то причине lambdaY вызывает 2+ раза каждый раз, когда я вызываю lambdaX . Обратите внимание, lambdaX возвращает правильный ответ, но я хочу избежать ненужного многократного вызова lambdaY .
Что мне нужно изменить в моем коде? (или лямбда-конфигурация)
Журналы:
Примечание: 2 журнала lambdaY вызываются одновременно.
Примечание: результаты LambdaX здоровы и, как и ожидалось. Нет дублирующего журнала.