AWS Lambda で S3 のアップロードログを取る

Why?

  • Lambda の練習用
    • S3 のイベントを拾う
    • ログに書き込む
    • 特に他のサービスと連携しない

Code

  • Handler: logS3.handler
  • Add event source: S3のPutイベントを拾う
  • IAM: Putイベントを拾う対象のReadイベントが必須
console.log('Load Lambda function');
var AWS = require('aws-sdk');

exports.handler = function (event, context) {
  console.log("Received event");
  var bucket = event.Records[0].s3.bucket.name;
  var object = event.Records[0].s3.object.key;
  console.log("bucket name: " + bucket + " / object key: " + object);
  console.log("done");
};

Result

  • Monitor tabでinvoke確認
  • Cloud watch でログを確認
    • ちゃんと出てた
bucket name: for-lambda-test2 / object key: hoge.jpg 

github.com