У меня есть 2 лямбды, test1
, которые вызывают test2
.Я хочу вызвать test2
асинхронно с менталитетом «огонь и забыть».
Ниже приведен код для обеих лямбд.Когда я устанавливаю InvocationType
на RequestResponse
, функция вызывается и в CloudWatch появляется журнал.Когда я изменяю InvocationType
на Event
, в CloudWatch нет записи о вызываемой функции.
test1:
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
exports.handler = async (event) => {
const params = {
'FunctionName': 'test2',
'InvocationType': 'Event',
'Payload': JSON.stringify('Hello')
};
const response = await lambda.invoke(params).promise();
return response;
};
test2:
exports.handler = async (event) => {
console.log(event);
return 'Success';
};
Политика IAM включает разрешения на вызов (в противном случае тип RequestResponse
также не будет работать).Я также читал о ограничениях на размер аргументов, которые вы можете передать , но в этом случае я передаю только "Hello" ... что дает?
РЕДАКТИРОВАТЬ: Я должен также добавить, что в каждом случае я получаю код ответа 202, который указывает на успешный вызов, я просто не вижу доказательств выполнения функции в журналах.
РЕДАКТИРОВАТЬ 2: Я добавил await
в конце test1
, но все еще не вижу никаких признаков того, что test2 был вызван в CloudWatch.