🅰️

boto3でLambdaを実行する時のタイムアウト設定

2023/10/11に公開

この記事で学ぶ事

タイトル通りですが、boto3でLambdaを実行する時のタイムアウト設定についてです。
(Lambdaを実行って表現は正しいのかな、、、)
私はこの情報を知れた事で業務で抱えていた問題が解決できたので誰かのお役に立てばと思っています。

解決したい事

boto3でLambdaを実行している処理で原因不明の異常が出ていた。
この異常が出ていればタイムアウトかもって情報じゃなくて申し訳ないです。
自信の状態と照らし合わせてみて下さい。

設定方法

import boto3
from botocore.config import Config

conf = Config(region_name="ap-northeast-1", read_timeout=300, retries={"max_attempts": 0})
lambda_client = boto3.client("lambda", config=conf)
  • 設定項目
    • リージョンをap-northeast-1
    • boto3からLambdaを実行した時のboto3の読込タイムアウトを300秒へ(デフォルト60秒)
    • 再試行なし

解決

自分が解決できた原因はboto3のタイムアウトを超える処理をLambdaで実施していた事でした。
始めから問題があった訳ではなくて、サービス利用者が増える事でタイムアウトが発生していました。
再試行なしにした理由は、結局Lambdaで時間かかってたら無理やし再試行意味なしと思ったからです。

その他

何か他にも色々設定できるみたいです。
connect_timeoutとread_timeoutの違いを明確にしたい。

参考

Boto3ドキュメント
botocoreドキュメント

Discussion