2017-04-12 14 views
0

私のノードファイルからラムダ関数を呼び出すことに成功しました。それは200と成功を返しますが、私は呼び出している関数に値を渡す必要があり、それを行う方法がわかりません。私はラムダを学び始め、いくつかのものがどのように動作するかを正しく理解していないと信じています。私はラムダ関数に電子メールアドレスを渡そうとしています。node.js関数から呼び出されたラムダ関数に値を渡す

function callLambda(){ 
var AWS = require('aws-sdk'); 
AWS.config.region = 'us-west-2' 

var lambda = new AWS.Lambda(); 
var params = { 
    FunctionName: 'UploadDailyRecords', 
    Payload: '{"client_id" : "[email protected]"}' 
}; 
lambda.invoke(params, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data);   
}); 
} 
callLambda(); 

はまた、私はこの呼び出しから変数を受け入れるために、他の関数からそれを起動する方法の正しい形式が不明です。これは、呼び出されたラムダがAWSで設定される方法です。

exports.handler = function(event, context, callback) { 
    get_clients_email(); 
    callback(null, "completed"); 
} 

ありがとうございました。

答えて

0

すべてはうまく見えますが、ラムダ関数のペイロードパラメータに今すぐevent.client_idでアクセスする必要があります。

+0

あなたは精緻化できますか?私がこれを実行し、 "get_clients_email();"を呼び出すと、それは動作しますが、何も渡されません。ペイロードにあるものをラムダに渡す必要があります。私があなたが言っていると思っているのは "get_clients_email()"です。私はそれを "get_clients_email(event.client_id)"にする必要がありますか? – Mike

+0

それはそれでした。 get_clients_email(event.client_id)は動作させました。私は変数が渡されていることを確認するconsole.logにできました。ありがとう! – Mike

+0

他にもう一つ。これが動作するようになったので、私はペイロードとしてハードコードされていないものを渡そうとしています。私の経験から言えば、文字列形式でなければなりません。私はハッシュを渡そうとしました、それはそれを受け入れませんでした。 clientstring = "'" + clienthash + "'"で文字列を作成しようとしましたが、それは受け付けません。どのように私はハッシュをその文字列形式として渡すことができますか? – Mike

関連する問題