別のラムダ関数内から非同期ラムダ関数を呼び出そうとしていますが、呼び出し元の関数がすぐに終了すると実行されないことがわかりました。
言い換えれば、以下は決して機能しません。LambdaFunction2 が呼び出されることはありません。
function lambdaFunction1(event, context) {
callLambdaFunction2();
context.done(null);
}
ただし、LambdaFunction1 が終了する前に少し遅延を追加すると、これまでのところうまくいく傾向があります。
function lambdaFunction1(event, context) {
callLambdaFunction2();
setTimeout(
function() {
context.done(null);
}, 500
);
}
私が懸念しているのは、500ミリ秒待機することはかなり恣意的な魔法の数であることです. 誰かが同様の問題に遭遇し、より原則的な修正を見つけましたか?