「LambdaChain1」と「LambdaChain2」という2つのawsラムダ関数があります。awsラムダ関数「LambdaChain1」からawsラムダ関数「LambdaChain2」を次のように呼び出しています。
enter code here
var start = new Date(); enter code here
console.log( '関数の読み込み');
exports.handler = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach(function(record) {
// Kinesis data is base64 encoded so decode here
var payload = new Buffer(record.kinesis.data, 'base64').toString('ascii');
console.log('Decoded payload:', payload);
});
context.succeed("Successfully processed " + event.Records.length + " records.");
var params = {
FunctionName: 'LambdaChain2', /* required */
InvokeArgs: start.getTime() /* required */
};
lambda.invokeAsync(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
};
これで、コードから「start.getTime()」をパラメーターとしてawsラムダ関数「LambdaChain2」に渡したことがわかります。
awsラムダ関数LambdaChain2で、ラムダ関数「LambdaChain1」から関数「LambdaChain2」に渡したパラメーターを取得または使用するにはどうすればよいですか。例を教えてください。
invokeAsync
非推奨のように見えるのでinvoke
、この例で使用しましたが、かなり似ています。
paramsのPayload
引数は、ChainFunc2invoke
のevent
パラメーターになります。
ChainFunc1
var AWS = require("aws-sdk");
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
var params = {
FunctionName: "ChainFunc2",
InvocationType: "RequestResponse",
Payload: JSON.stringify({"greeting": "Hello, Lambda"})
};
var lambdaClient = new AWS.Lambda();
lambdaClient.invoke(params, function(err, data) {
if (err) {
console.log("invoke failed:" + err, err.stack);
context.fail(err);
} else {
console.log("invoke succeeded", data);
context.succeed(data);
}
});
};
ChainFunc2
exports.handler = function(event, context) {
console.log("Received event:", JSON.stringify(event, null, 2));
console.log("Greeting:", event.greeting);
context.succeed({"message": "ChainFunc2 processed this", "payload": event});
};
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加