2016-09-29 179 views
1

我是Alexa & Nodejs的新手。Alexa SDK - Alexa调用AWS lambda函数调用另一个lambda函数

我正在编写一个基于示例nodejs颜色的新AWS lambda函数alexa skillset让我们说MySchedule将由Alexa调用。

我想从MySchedule lambda函数调用另一个AWS lambda函数MyTravelPlans。

任何人都可以请让我知道这是如何可能的 - 1.我需要多个处理程序?如果是的话,我该如何打电话。 2.我可以在不写处理程序的情况下调用MyTravelPlans lambda函数吗?如果是的话,确保invoke方法没有异步完成的任何示例

回答

0

假设两个lambda具有相同的角色,则可以使用aws-sdk从另一个lambda调用一个lambda。

var aws = require('aws-sdk'); 
aws.config.region = 'us-east-1'; //or whatever your region 
var lambda = new aws.Lambda(); 

    var params = { 
    FunctionName: 'MyTravelPlans' //name of lambda 
    InvocationType: 'RequestResponse', //Event | RequestResponse | DryRun 
    Payload: '{ "data" : "hello" }' 
    }; 

    lambda.invoke(params, function(err, data) { 
    if (err) { 
     context.fail(err); 
    } else { 
     context.succeed('response from My Travel Plans '+ data.Payload); 
    } 
    }) 

您需要确保的是,您拥有连接到角色的所有适当策略(在IAM管理控制台中)。最后,作为一个附注,我知道你特别要求同步操作,但是lambda-to-lambda通信的流行替代方法是使用sns