与Amazon Lambda进行分叉和联接 [英] Fork and Join with Amazon Lambda
本文介绍了与Amazon Lambda进行分叉和联接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试编写一个lambda函数来触发许多小的lambda.
I am trying to write a lambda function that triggers many small lambdas
exports.handler = (event, context, callback) => {
var AWS = require('aws-sdk');
let noOfPages = 20, currentPage = 1;
var message = '';
//let payloadArray = [];
while(currentPage <= noOfPages){
message = '{"first_page": '+ currentPage +', "last_page": '+ (currentPage) + ', "file_name" : "something.doc"' +'}';
console.log(message);
var params = {
FunctionName: 'test',
InvocationType: 'Event',
LogType: 'Tail',
Payload: message
};
var convLambda = new AWS.Lambda({
accessKeyId: 'key',
secretAccessKey: 'secret',
region: 'us-west-2'
});
convLambda.invoke(params, function(err, data) {
if (err) {
context.fail(err);
} else {
context.succeed('Processed : '+ data);
}
})
currentPage+=1;
}
};
这很好用,并触发了20个lambda.但是,我想等到所有异步lambda都完成(派生并加入).当前在Amazon Lambda中有什么方法可以实现这一目标?
This works well and triggers, say 20 lambdas. I would however, like to wait till all the async lambdas are done (fork and join). Is there way to achieve this currently in Amazon Lambda?
推荐答案
您可以考虑使用 AWS步骤功能,它可以派生和加入Lambda进程.它还在漂亮的图中显示了这些关系:
You could consider using AWS Step Functions, which can fork and join Lambda processes. It also shows the relationships in pretty graphs:
这篇关于与Amazon Lambda进行分叉和联接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文