2

私のインフラストラクチャでプロセスを実行しているAWSラムダ関数があります。 Lambdaは、CloudWatchルールを使用して8時間ごとに起動されます。ラムダプロセスに何らかのエラーが発生した場合に通知を出そうとしています。私はSESを使用しようとしましたが、そのサービスはその地域では利用できません。AWSラムダ関数にエラーが発生したときに通知を送信します

私はこの問題の任意の提案を知りたいでしょう:

どのようにセットアップの通知にエラーが私のラムダ関数で発生したとき?

私は提案を探しています。この質問は決して私の仕事をすることを求めませんでした。私は公式の書類に感謝しますが、いずれにせよ、何か助けてください。

答えて

9

ヒント:

デッドレターキュー:

あなたのエラーの原因は、あなたがSNSのトピックまたはSQSキューにイベントを送信するためにLambda Dead Letter Queueを使用することができ、呼び出しを失敗した場合。 SNSトピックに送信する場合は、SNSまたはEメールで直接subscribe to the topicを送信して、そのトピックにメッセージが公開されるたびに通知を受け取ることができます。

多地域SES:

あなたが本当に直接SESを使用して設定している場合は、SESのクライアントが提供する明示的な地域でインスタンス化することができます - 限り、あなたのラムダの実行の役割が適切な権限を持っているとして、別の地域のSESにEメールを送信することができます。 JS SESクライアントをインスタンス化するためのdocumentationがあります。

CloudWatchのログ:

あなたのエラーは、呼び出しが失敗する可能性がない場合は、別のオプションは、障害を集約し、潜在的にそれらのアラームするCloudWatchのログmetric filterを使用しています。 NodeJSを使用している場合は、console.log()console.error()などでログアウトすれば、CWLogsに書き出されます。詳細はhereです。

CloudWatchアラームにSNSトピックをサブスクライブし、DLQと同じ方法で自分自身に通知することができます。


エラーの経験を積むと、一般的なエラーを処理する方法を学ぶと、あなたもそれが起こるようにそれを処理するDLQ/CWLogsの例から、SNSのトピックに別のラムダを購読することができます。

+0

ありがとうございます。私はあなたに答えを読んで、私はメトリックフィルタについての検索を行い、メトリックフィルタを作成しましたが、通知を1回だけ呼び起こしています。私は自分の電子メールを使用し、エラーが発生したときに初めて通知電子メールエラーを送信します。なぜ私は複数のメールを提起していないのか知りたいです。何か手掛かりがある場合は? – Robert

+2

はい。 CloudWatchアラームの場合、指定したアラーム期間内にメトリックがアラームしきい値を超えると、アラームがトリップされたことを通知する単一の電子メールが表示されます。したがって、メトリックに1つの期間で10回書き込んだ場合、アラームの値が1になると、単一のアラーム通知が表示されます。アラーム期間を十分に短く設定した場合(8時間に1回だけ実行するユースケースでは、5分の1期間にメトリック値> 1のようにアラームしきい値を非常に低く設定することに害はありません)、複数の期間にわたってアラームが表示されます。 –

+0

まあ、時間と閾値についてでした。すべてがうまくいけば、アラームは数分後に元の状態に戻ります。ありがとうございました – Robert

関連する問題