Alexa SDK - Alexa调用AWS lambda函数,该函数调用另一个lambda函数

时间:2016-09-29 03:18:31

标签: node.js alexa alexa-skills-kit alexa-skill

我是Alexa和他的新手的NodeJS。

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

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

任何人都可以告诉我这是怎么可能的 - 1.我需要多个处理程序吗?如果是,我该如何拨打电话。 2.我可以在不编写处理程序的情况下调用MyTravelPlans lambda函数吗?如果是,则确保调用方法不是异步执行的任何示例

1 个答案:

答案 0 :(得分: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