1

私は Alexa と Nodejs の両方の初心者です。

私は、サンプルのnodejs色に基づいて新しいAWSラムダ関数を書いています。Alexaスキルセットは、Alexaによって呼び出されるMyScheduleと言えます。

MySchedule ラムダ関数から別の AWS ラムダ関数 MyTravelPlans を呼び出そうとしています。

誰でもこれがどのように可能か教えてください-1.複数のハンドラーが必要ですか? はいの場合、どのように電話をかけますか。2. ハンドラーを記述せずに MyTravelPlans ラムダ関数を呼び出すことはできますか? はいの場合、呼び出しメソッドが非同期的に実行されていないことを確認する例

4

1 に答える 1

0

両方のラムダが同じロールを持っていると仮定すると、aws-sdk を使用してラムダを別のラムダから呼び出すことができます。

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 管理コンソールで) ロールにアタッチされていることです。最後に、補足として、同期操作を具体的に求めていることは知っていますが、ラムダ間通信の一般的な代替手段はsnsを使用することです

于 2016-09-29T15:44:20.297 に答える