投稿日: Jul 13, 2023

AWS Lambda で Lambda 関数の再帰ループの検出と停止を行えるようになりました。お客様は、Lambda 関数を使用してイベント駆動型アプリケーションを構築し、Amazon SQS や Amazon SNS などのソースのイベントを処理します。ただしシナリオによっては、リソースの設定ミスやコードの欠陥により、処理されたイベントが Lambda 関数を呼び出したのと同じサービスまたはリソースに送り返されることがあります。これにより、意図しない再帰ループが発生し、お客様にとって意図しない使用結果となったりコストが発生したりする可能性があります。今回のリリースにより、Lambda では 16 回の再帰呼び出しの後、Amazon SQS、AWS Lambda、Amazon SNS 間の再帰呼び出しを停止します。

関数によってイベントがサポート対象の AWS SDK バージョン以降を使用して Amazon SQS または Amazon SNS に送信されると、Lambda はそのイベントに基づいて関数が呼び出された回数を追跡します。関数が同一のトリガーイベントによって 16 回を超えて呼び出されると、Lambda は次の呼び出しを停止し、そのイベントをデッドレターキューまたは失敗時宛先 (構成されている場合) に送信します。お客様には、トラブルシューティング手順が記載された AWS Health Dashboard 通知も送られます。

この機能はデフォルトでオンになっており、アジアパシフィック (香港、ジャカルタ、大阪、ムンバイ、ソウル、シンガポール、シドニー、東京)、アフリカ (ケープタウン)、カナダ (中部)、欧州 (フランクフルト、アイルランド、ロンドン、ミラノ、パリ、ストックホルム)、南米 (サンパウロ)、米国東部 (オハイオ、バージニア北部)、米国西部 (オレゴン、北カリフォルニア) の AWS リージョンでご利用いただけます。AWS アカウントでこの機能をオフにするには、AWS サポートにお問い合わせください。詳細については、こちらのドキュメントまたは今回のリリースに関するブログ投稿をご覧ください。