7

CloudWatchタイマーのpingを処理する方法で、関数をラップする最善の方法は何ですか?例えば、以下のラムダ関数を取る:私は機能にpingを実行した場合CloudWatchの要求にはqueryStringParametersがないためCloudWatchのラムダ関数に値を渡す方法は?

export const fn = (event, context, callback) => { 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

、それはエラーになります。技術的には、これはまだラムダ関数を温かく保つという仕事(私の目標)ですが、不必要に長いエラーのリストを望んでいません。

私はCloudWatchのは、ラムダ関数に渡されます(おそらく)の入力を含めることがことができますことに気づい:

configure input

それがpingを受け入れることができるように上記の関数をラップする賢い方法は何ですか?私のような、私はイベントを変更することができますいくつかのJSONを渡す

export const fn = (event, context, callback) => { 
    if (event.ping) return ping(callback) // the ping function is an import to stay DRY 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

::私は入力のドキュメントを読んできた

{ "ping": true } 

が、理想的には、それは次のようになります。さまざまな入力タイプがどういう意味なのか、どのように使用するのかはわかりません...

答えて

5

入力オプションConstant(JSON text)を選択すると、入力ボックスがすぐ下に表示されます。 json {"ping": true}と入力する必要があります。あなたの関数はeventオブジェクトとしてjsonを取得し、コードのようにevent.pingにアクセスできます。

サーバーレスフレームワークを使用している場合は、AWSコンソールでこれを行う代わりに、自分の関数のスケジュールイベントを追加できます。これはあなたの既存のhttpイベントに追加されます。

scheduledFunction: 
    handler: index.handler 
    events: 
    - schedule: 
     rate: rate(1 minute) 
     enabled: true 
     input: 
      ping: true 

これが作成され、指定したスケジュールでのCloudWatchのログイベントを有効にしてeventオブジェクトに入力パラメータpingを送る:あなたはこのようなスケジュールされたイベントの入力部の下ping: trueパラメータを追加することができます。

+0

これは実際に質問に対する回答です。司会者はそれをマークできますか? –

関連する問題