2017-11-01 4 views
3

「コールドスタート」を明確に識別する方法はありますか?実行時にラムダ自体でも、ログ経由でもかまいませんか?私は冷たいスタートは長いランタイムが特徴で、実際に見ることができますが、私は明確なカット方法を探しています。 Node.jsを使用しています。AWSラムダ:コールドスタートの確認

更新:2つのユースケースについて、以下の2つの良い答えがあります。 - ラムダが実行されるときにコールドスタートを特定します。 - CloudWatchログからコールドスタートを特定します。

答えて

6

NodeJSスクリプトの先頭に初期化コードを追加すると、コードではコールドスタートであることを伝えることができます。そのコードをコールドスタートするとログに記録することができますログ。たとえば:あなたはCloudWatchのログを見ている場合

var coldStart = true; 
console.log("This line of code exists outside the handler, and only executes on a cold start"); 


exports.myHandler = function(event, context, callback) { 
    if (coldStart) { 
    console.log("First time the handler was called since this function was deployed in this container"); 
    } 
    coldStart = false; 

    ... 

    callback(...); 
} 
3

、あなたのラムダ関数の各LogGroupは、別の容器を表し、したがって、そのLogGroupのための最初の呼び出しは、あなたのコールドスタートです。

+1

このステートメントは非常に興味深く有用かもしれません。それが書かれているドキュメンテーションを教えてください。 – olpa

+2

@olpa私はYan Cui [ここ](https://medium.com/@dashmug/thanks-for-responding-ce41bafc9e88)に同じ質問をして、私はこれを受け取りました[レスポンス](https://medium.com/ @ theburningmonk/not-or-not-invocations-over-the-same-container-a-a-a-a-different-question-to-api-e8f37d712340)を使用します。文書化されていないが、Amazonの誰かによって確認されたようだ。冷たいスタート時に何かをログに記録することは、CloudWatch LogGroupの始めに見られることは経験からもわかります。 – dashmug

+0

ありがとう、私は自分の経験と直感がこのように働く方法を確かめると思います。 – olpa