次のページを参考にしました。
AWS lambdaでハマったこと (lambdaからlambdaを呼び出す)
メインプログラム
callSample/index.js
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
exports.handler = function(event, context) {
console.error("*** start callSample PM 18:57 ***")
const event_aa = {
"key1": 118,
"key2": 216,
"key3": 314
}
const payload = JSON.stringify(event_aa)
const params = {
FunctionName: 'example01',
InvocationType: 'RequestResponse',
Payload: payload
};
lambda.invoke(params, function(err, data) {
if (err) {
context.fail(err);
} else {
console.error("*** check callSample PM 18:51 ***")
context.succeed(data);
}
});
};
呼び出される関数
example01/index.js
exports.handler = async (event) => {
// TODO implement
console.error("***** start example01 PM 18:49 ***")
var rvalue = {}
rvalue['key1'] = event['key1']
rvalue['key2'] = event['key2']
rvalue['key3'] = event['key3']
rvalue['message'] = 'Hello from example01'
const response = {
statusCode: 200,
body: JSON.stringify(rvalue),
};
console.error("***** end example01 ***")
return response;
};
実行時には、デフォールトの roll ではなく、次のような権限を持った、ロールが必要です。
AWSLambdaFullAccess