我有一个lambda函数(例如A),它需要调用另一个lambda函数(例如B)。但是其他功能(B)不应在调用时运行,而应在A定义的时间运行。
下面给出了我如何在函数A中调用函数B的方法。
function startRecording(startTime, roomName) {
const payload = {
roomName
}
const param = {
FunctionName: 'consult-classroom-api-dev-StartRecording',
InvocationType: "RequestResponse",
Payload: JSON.stringify(payload)
}
return new Promise((resolve, reject) => {
lambda.invoke(param,(err, data) => {
if (err) {
reject(err);
} else {
let payload = JSON.parse(data.Payload);
let payloadBody = JSON.parse(payload.body);
resolve(payloadBody);
}
}
);
});
}
所以我有开始的时间。那时需要一种方法来调用函数B。如果aws无法做到这一点,谁能提出建议或解决方法?
答案 0 :(得分:1)
仅使用Lambda是不可能的。您无法在特定时间仅使用Lambda服务且不执行任何功能来执行Lambda。
我只能想到2种选择:
1)使用Step Functions服务。该服务可让您协调Lambda的执行,并具有"Wait" step,可用于在一个函数执行与另一个函数执行之间引入延迟。
2)您可以使用CloudWatch>事件规则来计划函数执行,然后在执行后删除规则。