サイトアイコン 協栄情報ブログ

SNSよりLambdaの実行状況を監視する方法


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

協栄情報の陸です。

やりたいこと

本日は、CloudWatch Events定時でLambda関数を自動的に起動し、Lambda処理で異常発生する場合、SNSで指定したメールアドレスにエラーメッセージを送信する方法を紹介します。

利用するサービス

構成図

操作

Lambda関数の作成
該当する情報を入力し、記事の冒頭で述べた3つのサービスを運用する権限を持つものを選択します。

ここでの私の役割の権限は以下の通りです。

そして、Lambdaコードを書くことを選択します。 ここでは、インスタンスを起動するだけの簡単なものを紹介します。

ここで一つ注意したいのが 入力値は環境変数に設定されていなければならず、テスト時間には設定されていません。 環境変数から値を取得する方法は以下の通りです: os.environ["key"]

Lambdaの設定が終わったら、SNSサービスを作ってみましょう。 SNSのコンソールに行き、トピックを作成します。

スタンダードを選択し、該当する情報を入力します。

トピックを作成した後、サブスクリプションを作成します。
RAMは変更されません。プロトコルとして電子メールを選択し、ターミナルノードに電子メールを入力します。最終的に作成され、

次に、メールボックスに次のメールが届きます。クリックして確認してください


この時点で、サブスクリプションは正常に作成されています。

そしてLambdaの画面に戻り、ページを下にスクロールしていきます。 非同期呼び出しへ

次に、関連する情報を選択します。 デッドレターキュー amazon SNSを選択します。 トピック 先ほど作成したSNSを選択して保存します。

その後、CloudWatchサービスに移動し、ルールの作成を選択します。

ここでは、テストのために、スケジュールを選択します。 次のスピードは1分です。 次に、先ほど作成したLambda関数を関連付けます。

名前を入力したら、作成ルールを確認します。

最後にロググループに来て入力ログを確認します。

異常発生ない場合

環境変数から既存のインスタンスIDを入力すると、Lambdaは正常に起動できます。 次に、ログを表示できます,エラーが発生しなかったため、この時点ではSNSサービスはトリガーされませんでした
!

異常発生する場合

それでは、エラーの状況を示しましょう。 存在しないインスタンスIDを環境変数に入力します。

次にログを確認しますが、エラーが発生したため、この時点でSNSサービスを開始し、設定したメールボックスにエラーメッセージをメールで送信します。

注意

実験が完了したら、イベントのルールをオフにする必要があります。オフにしないと、

関数が引き続き開始されます。
念のため、最終的にLambdaの非同期呼び出し画面がデフォルトで変更されます。

以上。

モバイルバージョンを終了