在定义的特定时间从另一个 lambda 调用 aws lambda
Invoke aws lambda from another lambda at a defined specific time
我有一个 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 中不可能,任何人都可以建议一种方法或解决方法吗?
仅使用 Lambda 是不可能的。您无法在特定时间仅使用 Lambda 服务而不执行任何功能来执行 Lambda。
我只能想到2个选项:
1) 使用 Step Functions service. That service lets you coordinate the Lambda execution and has a "Wait" step 可以在一个函数执行和另一个函数执行之间引入延迟。
2) 您可以使用 CloudWatch > 事件规则来安排函数执行,并在函数执行后删除规则。这将是更多的工作,因为它不适合该用例,但它是可行的。
我有一个 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 中不可能,任何人都可以建议一种方法或解决方法吗?
仅使用 Lambda 是不可能的。您无法在特定时间仅使用 Lambda 服务而不执行任何功能来执行 Lambda。
我只能想到2个选项:
1) 使用 Step Functions service. That service lets you coordinate the Lambda execution and has a "Wait" step 可以在一个函数执行和另一个函数执行之间引入延迟。
2) 您可以使用 CloudWatch > 事件规则来安排函数执行,并在函数执行后删除规则。这将是更多的工作,因为它不适合该用例,但它是可行的。