どこにでもいる30代SEの学習ブログ

主にプログラミング関連の学習内容。読んだ本の感想や株式投資についても書いてます。

【AWS】LambdaをS3トリガーで起動する方法

API Lambdaのチュートリアルの中に「AmazonS3トリガーを使用してLambda関数を呼び出す」があったのでやってみました。

docs.aws.amazon.com

[1] S3バケットを作成

まずは、S3バケットを作成します。

f:id:predora005:20210411185619p:plain

バケット作成時、特に注意することはありません。

f:id:predora005:20210411185623p:plain

バケット作成後、ファイルをアップロードしておきます。本記事では「test.png」としています。

f:id:predora005:20210411191236p:plain

[2] Lambda関数を作成

「設計図の使用」を選択し、設計図の中から「s3-get-object-pythonを選択します。

f:id:predora005:20210411192704p:plain

実行ロールはAWSポリシーテンプレートから新しいロールを作成」を選択します。ポリシーテンプレートの中から「Amazon S3オブジェクトの読み取り専用アクセス権限」を選びます。

f:id:predora005:20210411192710p:plain

S3トリガーに先ほど作成したバケットの名称を入力します。他はデフォルトのままにしておきます。

f:id:predora005:20210411192717p:plain

[3] テスト

Lambda関数の作成後、テストイベントを作成します。テンプレートから「s3-put」を選びます。

f:id:predora005:20210411195146p:plain

テンプレート内の「example-bucketを作成したS3バケットのARNに変更します。また、「test/key」アップロードしたファイル名(本記事でっはtest.png)に変更します。

f:id:predora005:20210411195153p:plain

テストイベント作成後、テストを実行します。上手くいくと次のような実行結果になります。

f:id:predora005:20210411195157p:plain

[4] S3バケットにアップロード

次に、S3バケットに新たなファイルをアップロードしてみます。test2.png, test3.jpg, test4.jpgをアップロードしました。

f:id:predora005:20210411195554p:plain

CloudWatchでLambda関数のログを見ると「image/png」「image/jpeg」が登録されたことが登録されています。

f:id:predora005:20210411195601p:plain

[5] リソースの削除

次のリソースを削除します。

  • Lambda関数
  • Lambda関数のロググループ
  • IAMポリシー
  • IAMロール
  • S3バケット

終わりに

チュートリアル通りに試して、無事にS3をトリガーとしてLambda関数が起動されました。今回はアップロードされたファイルの種類を返すだけという簡単なものでした。次回は少し実践的な内容にトライしてみたいと思います。

出典