最近アップデートされたLambdaの再帰ループ検出使ってみた
by
そのだ
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
最近アップデートされたLambdaの 再帰ループ検出機能使ってみた フレッシュメンLT #0 夏祭り 2023.8.25 苑⽥朝彰 1
Slide 2
Slide 2 text
⾃⼰紹介 苑⽥ 朝彰(28) Sonoda Tomotada - ID - Github︓tomomj - Twitter︓@sonoda_mj - Work at - 株式会社 Fusic (フュージック) 技術開発第⼆部⾨所属 - ソフトウェアエンジニアリング - 新卒3年⽬ - Skill - AWS/React(Native)/Ruby on Rails 2
Slide 3
Slide 3 text
アジェンダ 3 l 背景 l Lambdaの再帰ループ検出機能使ってみた l まとめ
Slide 4
Slide 4 text
01 背景
Slide 5
Slide 5 text
非エンジニアの同期M君 S3にcsvをアップロードしたら、 いい感じに処理してS3に格納し てほしい!!!
Slide 6
Slide 6 text
我エンジニアぞ〜〜〜 余裕なり
Slide 7
Slide 7 text
Lambda S3 CSVを取りに行く CSVをアップロード CSVを処理 CSVを格納 S3にCSVがアップロードされたらLambdaで処理してS3に格納
Slide 8
Slide 8 text
Lambda S3 CSVをアップロード おっCSVきたな
Slide 9
Slide 9 text
Lambda S3 CSVを処理 CSV処理してな〜
Slide 10
Slide 10 text
Lambda S3 CSVを格納 処理したで〜
Slide 11
Slide 11 text
Lambda S3 おっなんかまたCSVきたな
Slide 12
Slide 12 text
Lambda S3 CSVを処理 CSV処理してな〜
Slide 13
Slide 13 text
Lambda S3 CSVを格納 処理したで〜
Slide 14
Slide 14 text
Lambda S3 めっちゃCSV来るやん
Slide 15
Slide 15 text
Lambda S3 CSVを処理 CSV処理してな〜
Slide 16
Slide 16 text
Lambda S3 CSVを格納 処理したで〜
Slide 17
Slide 17 text
Lambda S3 頑張るで〜〜〜 ❓
Slide 18
Slide 18 text
Lambda S3 CSVを取りに行く CSVをアップロード CSVを処理 CSVを格納 「S3に入った時」というトリガーにしていたので、Lambdaによって送 られてきたCSVも処理されていた
Slide 19
Slide 19 text
その結果
Slide 20
Slide 20 text
無限に通知が来る ※当時のイメージ
Slide 21
Slide 21 text
無限円請求します ちゃんと払ってな
Slide 22
Slide 22 text
ですが
Slide 23
Slide 23 text
参考:https://aws.amazon.com/jp/about-aws/whats-new/2023/07/aws-lambda-detects-recursive-loops-lambda-functions/
Slide 24
Slide 24 text
02 Lambdaの再帰ループ 検出機能使ってみた
Slide 25
Slide 25 text
AWS Lambdaとは 25 サーバーレスでイベント駆動型のコンピューティングサービスであり、サーバーのプ ロビジョニングや管理をすることなく、事実上あらゆるタイプのアプリケーションや バックエンドサービスのコードを実行することができる。 参考:https://aws.amazon.com/jp/lambda/
Slide 26
Slide 26 text
再帰ループ検出機能とは 26 Lambda Amazon SQS 同じリクエストチェーンで関数が 16 回を超えて呼び出された場合、Lambda はそのリ クエストチェーン内の次の関数呼び出しを自動的に停止する 16回呼び出されてる から、関数の呼び出し を停止 参考:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-recursion.html
Slide 27
Slide 27 text
サポートされているAWSサービス 27 引用:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/invocation-recursion.html 【注意】S3とDynamoDBはまだ対応していない
Slide 28
Slide 28 text
構成図 28 ユーザーがS3に画像をアップロードし、SQSとLambdaで無理やり再帰ルー プを発生
Slide 29
Slide 29 text
03 実際にやってみた
Slide 30
Slide 30 text
検証⽅法 30 Lambda Amazon SQS 関数が 16 回を超えて停止したかどうかをCloudWatchで確認する。 16回呼び出されてる から、関数の呼び出し を停止
Slide 31
Slide 31 text
CloudWatch(Invocations) 31 関数コードが呼び出された回数 (成功した呼び出しや関数エラーが発生した呼び出しを 含む)。 これ
Slide 32
Slide 32 text
CloudWatch(Recursive invocations dropped) 32 関数が無限再帰ループの一部であることが検出されたために Lambda が関数の呼び出 しを停止した回数。
Slide 33
Slide 33 text
今までの⽐較(再帰ループした場合) 33 従来のLambda アップデートされたLambda 呼び出し回数 無限回 呼び出し回数 16回
Slide 34
Slide 34 text
今までの⽐較(再帰ループした場合) 34 従来のLambda アップデートされたLambda 呼び出し回数 無限回 呼び出し回数 16回 実 質 無 限 円 お 得 ! ! !
Slide 35
Slide 35 text
04 まとめ
Slide 36
Slide 36 text
まとめ Lambdaの再帰ループ検出はかなり便利 Point 2 S3とDynamoDBは対応されていないので、注意が必要 36 Point 1
Slide 37
Slide 37 text
ご清聴いただきありがとうございました Thank You We are Hiring ! https://recruit.fusic.co.jp/