将来的に AWS でサービスを作ってみたいと考えています。
それを踏まえて、まずは AWS lambda がどんなものなのかを学習しつつ、簡単なチュートリアル的な処理を実装してみようと思います。
概要
今回やる内容はざっくり以下の感じです。

- Amazon S3 に
*.md
ファイルを追加 - AWS Lambda がイベントをキャッチして、Lambda に記載されているアクションを実行
- Amazon Cloud Watch にメッセージを出力
今回参考にさせてもらったサイトです。↓
”https://dev.classmethod.jp/cloud/aws/lambda-my-first-step/″
Amazon S3 のバケットを作成
そもそも S3 とは
Amazon Simple Storage Service
の略らしいです。
「バケット」という単位でストレージを作れて、一見ただのクラウドストレージっぽいんですが、例えばファイルを追加したときとかにイベントが発火できるようになっています。
これにより、 AWS Lambda の実行条件に使用することができます。
多分それ以外にもただのクラウドストレージ以上のことができるのでしょうけど、今回は目的が Lambda の実行なので、コレ以上調べていません。
S3 へバケット新規追加
追加方法は他サイトに詳しく書かれているのでここでは省略します。
とりあえず今回は this.is.mytest
という名前でバケットを作成しました。
AWS Lambda の作成
Lambda とは
javascript とか C# とかにある「ラムダ式」と呼ばれるもののイメージでいいのかなと勝手に思っています。
ざっくり、「何かイベントを受けると、指定された処理を実行する」的な感じでしょうか。
AWS Lambda ではトリガーとして API Gateway や AWS IoT 、S3 、SNS などいろんなものが選べるようです。
今回は、上記の参考サイトと同様に S3 を選択してみました。
また、関数の実装言語も、Python や javascript 、 .NET Core までいろいろ選べるみたいです。
python で Lamda を新規作成
基本的には参考サイト様の通りに作ったので、ここでは詳細は省略します。
一応以下に設定内容のキャプチャを残しておきます。


今回のシナリオとしては、 S3 の this.is.mytest
バケットの sample
フォルダに *.md
ファイルをアップロードしたとき、Amazon CloudWatch Logs に、Lambda で定義した内容が記述されるという流れです。
動作確認
実際に、S3 の this.is.mytest
バケットの sample
フォルダに「アップロード」を使用して readme.md
というファイルを追加してみました。

これにより Lambda が動作して CloudWatch Logs に文字列が出力されるはずです。
ブラウザ上部のメニューより「サービス」を選択し、 CloudWatch を選択します。

ちょっとわかりにくいのですが、以下のように「ログ」を選択すると、ログビュー画面を開けます。

開いてみると、下記のようにログが出力されていました。
(時間が日本時間ではなく、UTC 標準時になっているので、9時間ほど誤差があります)

これで、 S3 にファイルをアップロードしたことをきっかけとして Lambda が実行されたことが確認できました。
今回はこれでおしまいです。
次は、Lambda のトリガーに AWS IoT を指定して見たいと思います。
コメント