続・AWS CDKでLambdaのループ検知検証環境を作った上で検証してみた
前回の記事はこちら
パターンが足りなかったのと、
一部思い込みで記事を投稿してしまいました(そちらについては訂正済みですが、本当に申し訳ございません。)
追加検証に関してまとめさせていただきます。
追加検証パターン
- Amazon SNSとAmazon SQSを組み合わせたパターン
- Amazon SQSとAWS Lambdaを組み合わせたパターン
- Amazon SQSとAWS Lambdaを数珠繋ぎにしたパターンでのループ
上2つは、公式ドキュメントの「サポートされている AWS のサービス」に記載のパターンの下2つですね。(こちらを完全に見逃していました。)
数珠繋ぎ(ピタゴラスイッチ)パターンは検知しないパターンと思い込んでいたんですが、
あれ、複数サービスでも検知するってことは・・・ということで、
試してみたものです。
結果
3パターンいずれも検知・停止しました。
上2つは公式記載されているものなので、検知・停止してくれないと困るんですが、
数珠繋ぎ(ピタゴラスイッチ)パターンはもしかしたら検知しないんじゃないかと思っていたんですが、
見事に検知してくれました。本当にすみません。そし素晴らしい!!!
数珠繋ぎ(ピタゴラスイッチ)パターンで実行されるLambda関数のInvocationsのメトリクスになります。
こちらも16回で止まっています。(本当にドキドキしました。)
複数サービスを使った場合でも検知・停止するっていうのは大きいかなと思います。
試したい方向け
前回も書きましたが、こちらです。
注意事項
githubに公開したサンプルで、S3トリガーのケース、
もし、試してみる方は、起動したら、絶対に即止めてくださいね!
それで課金発生したと言われても、止めないのが悪いので、当方は責任置いかねます!!!
README.md(README_jp.md)にも散々書いてます!
【再掲】忘れてはならないこと
最後に、前回も記載しましたが、忘れてはならないことを1つ。
ループ実行の検知および停止の機能はあくまで補助的な機能(最後の砦)だと思います。
忘れないようにしたいのは、
ループにならないように気をつける
です。
検証パターンでは、あれ、ループになってないな?って見直すこともありましたが、
本来は、(意図的ではない限り)ループにならないように処理を組み立てないとダメだと思います。
この機能になるべくお世話にならないように、今後もEvent処理を実装していきたいと思います。
Discussion