当我有一个AWS lambda完成时,我想触发另一个lambda运行。第一个lambda让我们调用X,充满了异步代码,我宁愿不要乱用它。我以为我可以使用cloudwatch来说X完成后调用lambda Y.但我无法知道如何做到这一点。
有人可以帮我弄清楚当另一个lambda完成时如何运行1个lambda吗?非常感谢你
有人建议我包装所有异步调用并使用SDK,重新编写此代码以使用新的sdk是不可行的。我正在寻找的是监视lambda何时完成然后调用另一个lambda的方法。更多的观察者模式而不是通知模式。
答案 0 :(得分:0)
让您的第一个Lamba在SNS上发送消息。然后configure CloudWatch to monitor SNS,结果是运行你的第二个Lambda。
答案 1 :(得分:0)
ll = 262709978263278
f = 262709979381760.000000
允许您实例化一个新的Lambda对象,并假设您知道要执行的第二个lambda的ARN,您可以在异步代码完成后调用它。
对于第一个lambda中给定代码的类似内容应该有效...
aws-sdk
答案 2 :(得分:0)
你可以通过包装回调函数来快速修复以触发你的lambda。
let wrap = (originalFunction) => {
return (event, context, callback) => {
let overwriteCallback = (err, data) => {
// do your stuff here
// publish to sns to run your lambda
// or directly run your lambda
// then finally run callback
callback(err, data)
}
originalFunction(event, context, overwriteCallback);
}
}
module.exports = wrap((event, context, callback) => {
//original mess we don't want to touch
})
如果年龄较大,您可能还想覆盖 context.succeed(); context.fail(); context.done()
您可以在此处找到有关这些方法的文档: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-using-old-runtime.html