API GWを介して呼び出されたnode4ラムダ関数は、一連の遅いAPI呼び出しを行います。すべてが完了するまでユーザーを待たせないために、コードを次のようにする予定です。
function(event, context, callback) {
...
// Return users API GW call now
callback(null, data);
// Do the heavy lifting afterwards.
longApiCall().then(otherLongApiCalls)
}
しかし今、私は AWS docs を読みました:「コールバックは、プロセスをフリーズして結果を呼び出し元に返す前に、Node.jsランタイムイベントループが空になるまで待機します」
これは、API GWがlongApiCallsの完了前または完了後に応答データを返すことを意味しますか?
その後、すべてが完了する前に「早く戻る」方法の提案された方法はありますか?
現在の構成では、API Gatewayは、Lambda関数の実行が終了するまで待機してから、応答を送信します。オプションは次のとおりです。
オプション5.ラムダ関数にメッセージをSQSにキューイングさせ、別のラムダまたはec2、あるいは手間のかかる作業を行いたい場所からキューをポーリングします。