LoginSignup
2
2

More than 3 years have passed since last update.

Lambda入門#1 はじめてのLambda関数作成 S3との連携

Last updated at Posted at 2020-02-24

参考URL

クラスメソッドさんのページみて勉強してみました。
https://dev.classmethod.jp/cloud/aws/lambda-my-first-step/

Lambda関数の作成

まずはどんなものなのかを知っていくことが重要だと思いますので、ページに記載されている内容に沿って、実際に操作してみます。

image.png

ロールは新規作成

image.png

と思ったら、以下のエラーが出力されて作成できませんでした。
IAMのロール作成権限が必要なのですね。

image.png

IAMのロール作成権限を持つユーザーで改めて、操作したところ、無事に関数を作成できました。

image.png

ところが、やっぱり、ここでも「う~ん?」って感じです。
作成はできたのですが、記事で紹介されているデフォルトの「Amazon CloudWatch Logs」が出てきません(汗

image.png

記事によると画面左側に「トリガー」が表示され、画面右側の「送信先」には「アクセス可能なAWSのサービス」が表示されるとのこと。
デフォルトでは「Amazon CloudWatch Logs」が表示されるそうなのですが、「う~ん?」です。

とりあえず、記事にならって、「トリガー」にS3を指定して、追加してみます。
image.png

ひとまず、適当なバケットを指定し、やってみます。
image.png

なんでも適当はダメですね(汗
「トリガーとS3のバケットは同じリージョンの必要がある」と表示されました。

image.png

追加できましたー

image.png

そして、このタイミングで最初の疑問だったデフォルトの設定「Amazon CloudWatch Logs」が表示されていない件について、進展がありました。
「アクセス権限」というタブを選択すると設定が紐づいておりました。
トップ画面に表示されていなかっただけのようです。

image.png

ですので、気を取り直して、Lambdaのコード編集に入ります。

テストコード
def lambda_handler(event, context):
    print("Lambdaが呼ばれたよ!!!!!!")

image.png

コードの内容が究極シンプルなので、理解しやすかったです。
イベントが発生したら、printの処理を実行する。

Lambdaのコードが書けたら、テストを行うことができるようです。
最初は↓のような感じです。

image.png

イベントテンプレートをS3のPut処理に選択しなおして、テストしてみます。
jsonの中身は空でイベントのみを拾うようにします。

image.png

画面右上のプルダウンメニューに作成したテスト名が表示されるので、そのままテストを実行します。

image.png

おっ!

image.png

本当に記事に記載されていた通り、「Lambdaが呼ばれたよ!!!!!!」のprint処理が実行されました!

実行ログも確認してみます。
テストを実行すると、画面の上部に「実行結果:成功(ログ)」と表示され、リンクが貼られているので、辿ってみます。

image.png

おや、Cloud Watch Management Consoleに飛びました。
ログストリームの項目に1行だけアクティブなリンクが貼られています。

image.png

ログにも記録されていることが確認できました。

image.png

実際にファイルをS3にPutして、同じ動作(イベントを取得して、print処理を実行)するか確認してみます。

プレフィックスがtargetsのフォルダに.txt拡張子のファイルが保存されたら、イベントが実行される条件で設定しているため、S3にフォルダを用意します。
image.png

用意したフォルダにtxt拡張子のファイルを保存してみます。
image.png

アップロードできました!
image.png

ここでCloud Watch Management Consoleに戻って、画面更新を行います。
おっ!新しいイベントが生成されています!

image.png

ちゃんと狙い通りの動作はできているようです。

image.png

次もこの記事の続きをやっていきたいと思います!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2