2016-09-29 7 views
1

Ich bin ein Neuling für beide Alexa & Nodejs.Alexa SDK - Alexa Invoke eine AWS Lambda-Funktion, die eine andere Lambda-Funktion

Ich schreibe eine neue AWS Lambda-Funktion basierend auf Probe nodejs Farbe Alexa Skillset lässt sagen MySchedule, die von Alexa aufgerufen wird.

Ich versuche, eine andere AWS Lambda-Funktion MyTravelPlans von MySchedule Lambda-Funktion aufzurufen.

Kann mir bitte jemand sagen, wie das möglich ist - 1. Brauche ich mehrere Handler? Wenn ja, wie mache ich den Anruf? 2. Kann ich die Lambda-Funktion von MyTravelPlans aufrufen, ohne einen Handler zu schreiben? Wenn ja, irgendein Beispiel, um sicher zu stellen, dass die Aufrufmethode nicht asynchron erfolgt

Antwort

0

Angenommen, dass beide Lambdas die gleiche Rolle haben, können Sie mit der aws-sdk ein Lambda von einem anderen aufrufen.

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); 
    } 
    }) 

Die Sache, die Sie benötigen, um sicherzustellen, dass Sie auf Ihre Rolle (in der IAM-Management-Konsole) angebracht, alle geeigneten Maßnahmen haben. Schließlich, als eine Randnotiz, ich weiß, dass Sie speziell für eine synchrone Operation fragen, aber eine beliebte Alternative für Lambda-zu-Lambda-Kommunikation ist zu verwenden sns