2017-02-19 5 views
0

ユーザSQSキューにメッセージがあると、アラームがトリガされ、SNS通知によってラムダ送信電子メールプロセスが開始されます。ラムダ関数が例外をスローし、残りのバッチを送信するために自身を再度呼び出さない場合、どのようにプロセスを再開しますか? SNSはアラーム状態が変わると通知を送信しますが、この場合は状態は変わりません。MoonMail:ラムダ送信関数の再呼び出し

+0

例外がスローされますか?最も一般的な例外が処理されていますが、予期しない例外が発生した場合、ラムダが無限ループで終了するのを防ぐためにプロセスがすべて停止します。 – davids

+0

@davids、例外は完全に私の誤りです。私はレポをクローン化し、展開し、Moonmailを調整してそれを研究し、よりよく学ぶために使いました。しかし、私の質問はまだ残っています。例外がエッジケースでのみ発生し、ラムダの停止が目的の動作でなかった場合はどうなりますか?ラムダ自身がコントロールできないもので失敗し、それを再トリガしたい場合はどうすればよいですか?私の質問は、「Moonmailにはバグがあります」ではなく、建築家の弾力性に関して「もしあれば」に向かっています。 – Julian

+0

その場合、[Dead Letter Queue](http://docs.aws.amazon.com/lambda/latest/dg/dlq.html)を設定し、エラーの原因をプログラムで確認してから再度呼び出すことができますあなたが望むならラムダ。とにかく、キューが空になるまで関数が再帰的に実行されるので、何かがキューをフラッシュするのを妨げて何も機能しない場合は何も機能しない可能性があります。 – davids

答えて

0

Dead Letter Queueをセットアップして、エラーの原因をプログラムで確認し、必要に応じてラムダを再度呼び出すことができます。とにかく、キューが空になるまで関数が再帰的に実行されるので、キューがフラッシュされずに何度も何度も実行し続ける関数が停止しても

関連する問題