ようやく 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, ''); })
コメントを残す