与Amazon Lambda进行分叉和联接 [英] Fork and Join with Amazon Lambda

查看:57
本文介绍了与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆