メインコンテンツへスキップ

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

· loading · loading ·
kiitosu
著者
kiitosu
画像処理やデバイスドライバ、データ基盤構築からWebバックエンドまで、多様な領域に携わってきました。地図解析や地図アプリケーションの仕組みにも経験があり、幅広い技術を活かした開発に取り組んでいます。休日は草野球とランニングを楽しんでいます。
目次

概要
#

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

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

Reply by Email

関連記事

codebuildからlambda deployができない
· loading · loading
localstackを使ったlambdaのdeployについて
· loading · loading
aws-vaultのsessionの時間制限
· loading · loading