2016-09-29 182 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