😎

inject_lambda_context で表示されるcold_startがTrueになる条件

2024/04/22に公開

概要

aws lambda の ephemeral storageが足りなくなった。
/warm startにより同一インスタンスが繰り返し使われ、/tmpにファイルが残っていると想像した。
しかし、@logger.inject_lambda_context(log_event=True)で残したlambdaのlogには

 "cold_start": true

が残っていて、cold_start状態と思われる。
cold_startであるならばインスタンスは再利用されず、エフェメラルストレージも初期化されるはずでは?

結論

サポートに問い合わせたところ以下の回答があった。(抜粋)

  • power tools for lambda で cold_start=trueとなるのは実行環境がリセットされたときである。
  • cold_start=trueだからといって実行環境が作り直されるわけではない。
  • 既に用意されている実行環境が再利用されたかどうかは「同じログストリームにログが出力されているか」どうか、で判断できる。
  • 実行環境のリセットで何が実施されるかは内部情報であり公開できない

なんとも腑に落ちませんが・・・そういう仕様というこのようです。

Discussion