Lambdaはre:Inventで発表された新しいコンピュートプラットフォームでクラウド上でコードスニペットをイベントドリブンで比較的簡単に動かせる特徴があります。S3にデータがあがったとき、など今までだとどうしてもEC2をたてて、定期的にチェックをしながら動かす必要があったものが、文字通りS3側からイベントを発火してもらえるので、よけいなポーリングなどの手間がへり、結果的にコストをおさえながら目的を果たしやすくなっています。そこで今回はS3上にあがったデータのメタデータをDynamoDBに管理するLambdaファンクションを作ってみたいと思います。Lambdaのプレビューを申し込みます。こちらから申し込む事が出来ます。プレビュー申し込みは順番に案内しているみたいなので、申し込んだらあとは祈るのみです。今回はS3にあがって来たデータのメタデータ管理をDynamoDBでやってみようと思います。難しい事は考えずにシンプルに管理できるようにしてみましょう。旧来だとS3にあがったことをクライアント側でわざわざ通知したり、バッチ的にS3のLISTをコールしまくってメタデータを突っ込んでいたりとやや面倒でしたが、Lambdaを使うと結構シンプルにやれちゃいます。ファンクションは下記にような感じになります。DynamoDBに突っ込む(テーブルは事前に作っておいてください)こんだけです。注意点として、S3とLambdaのリージョンは現時点だと同じにする必要があります。DynamoDBは特に制約はないので東京リージョンにしてみます。});};ファンクションの登録とデバッグファンクションの登録自体はマネージメントコンソール上でぽちぽちとやってもらえれば良い感じです。Roleの設定などなどは、Lambdaのドキュメントをご覧くださいませ。CLIを使って、zipファイルに固めてもアップロードする事が出来ます。コードが正しく動いているかを確認します。MC上でテストする機能がついているので、左側でサンプルのイベントをおこして、ちゃんと動いているかを確認します。Invokeボタンをおすと、実際に動かす事が出来ます。DynamoDB側にも実際にデータが入ったか確認してみます。入ってそうですね!稼働確認では実際にS3にオブジェクトをPUTしてみましょう。このLambdaファンクションのzip自体(s3todynamo.zip)をS3にあげてみます。s3://lambda-s3dynamo-test/s3todynamo.zipDynamoDB側でも確認してみましょう。DynamoDB側でもデータが入っていますね!まとめこんな感じで比較的あっさりとLambda上でS3のメタデータをDynamoDBで管理することが出来るようになりました。気楽に始められるのではないでしょうか?この他にもLambdaは色々クリエイティブに利用する事が出来る可能性を秘めたプラットフォームなので、他にも色々試してみたいと思います!免責こちらは個人の意見で、所属する企業や団体は関係ありません。requestStockLike79@shot6お気楽な開発者でございまっす。所属する組織とは無関係で、あくまで個人の書き込みでございますー。upLoginユーザーは見つかりませんでした。