ようやく AWS Lambda が把握できてきた。
小さい機能単位で Lambda ファンクション作って、それを呼ぶ感じで作っていくとやりやすい。
イベント発生して呼び出される Lambda ファンクション
↓
イベントの情報をもとになんかする Lambda ファンクション
↓
結果を SNS なり、Slack なりに投げる Lambda ファンクション
みたいに Lambda ファンクションから Lambda ファンクションを呼び出して作業させると具合がいい
Lambda から Lambda を呼ぶには
console.log('Loading event');
var aws = require('aws-sdk');
exports.handler = function(event, context) {
// なんか処理
var lambda = new aws.Lambda({apiVersion: '2014-11-11'});
var params = {
FunctionName: "lambda-function-name",
InvokeArgs: JSON.stringify({
"key_1": 'var_1',
"key_2": 'var_2',
"key_3": 'var_3'
}, null, ' ')
};
lambda.invokeAsync(params, function(err, data){
if(err) context.done('error', err.stack);
else context.done(null, '');
}
Lambda から SNS を呼ぶには
var sns = new aws.SNS({region: 'リージョン'});
var params = {
TopicArn: 'トピック arn',
Subject: 'サブジェクト',
Message: 'メッセージ'
};
sns.publish(params, function(err, data) {
if(err) context.done('error', err.stack);
else context.done(null, '');
})
コメントを残す