Lambda 関数のイベントソースに SQS キューを指定する際に発生する「Queue visibility timeout: x seconds is less than Function timeout: y seconds」への対処方法

Lambda 関数のイベントソースに SQS キューを指定する際に発生する「Queue visibility timeout: x seconds is less than Function timeout: y seconds」への対処方法

2025.12.23

困っていた内容

Lambda 関数のイベントソースに SQS キューを指定しようとしたところ以下のエラーが発生して指定できませんでした。

Queue visibility timeout: 10 seconds is less than Function timeout: 15 seconds

上記エラーへの対処方法を教えてください。

どう対応すればいいの?

Lambda 関数のタイムアウトの値をソースキューの可視性タイムアウト以下の値に設定してください。
Amazon SQS イベントソースマッピングの作成と管理 - AWS Lambda

関数のタイムアウトは、キューの可視性タイムアウト以下である必要があります。Lambda は、イベントソースマッピングを作成または更新するときにこの要件を検証し、関数のタイムアウトがキューの可視性タイムアウトを超えた場合にエラーを返します。

上記ドキュメントに記載の通り Lambda 関数のタイムアウトの値がソースキューの可視性タイムアウトの値より小さい場合に冒頭のエラーが発生します。
そのため Lambda 関数のタイムアウトの値は最低でもソースキューの可視性タイムアウトと同じ値に設定する必要があります。

また、ソースキューの可視性タイムアウトの値は Lambda 関数のタイムアウトの少なくとも 6 倍に設定することが推奨されています。
Amazon SQS イベントソースマッピングの作成と管理 - AWS Lambda

関数がレコードの各バッチを処理する時間を確保するには、ソースキューの可視性タイムアウトを、関数の設定タイムアウトの少なくとも 6 倍に設定します。追加の時間は、関数が前のバッチの処理中にスロットリングされた場合に、Lambda が再試行することを可能にします。

Lambda 関数での処理が完了する前にソースキューの可視性タイムアウトの時間を超過した場合の挙動については以下の弊社ブログでも紹介されていますので、あわせてご参照ください。
https://dev.classmethod.jp/articles/visibility-timeout-lambda-sqs/

参考資料

この記事をシェアする

FacebookHatena blogX

関連記事