Alexa SDK - Alexa调用AWS lambda函数调用另一个lambda函数
问题描述:
我是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方法没有异步完成的任何示例
答
假设两个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