チュートリアル: スケジュールされたイベントでの AWS Lambda の使用 - AWS Lambda

チュートリアル: スケジュールされたイベントでの AWS Lambda の使用

このチュートリアルでは、以下の作業を行います。

  • lambda-canary の設計図を使用して Lambda 関数を作成します。Lambda 関数を毎分実行されるように設定します。関数がエラーを返すと、Lambda が Amazon CloudWatch にエラーメトリクスを記録することに注意してください。

  • Lambda 関数の Errors メトリクスに CloudWatch アラームを設定し、AWS Lambda が CloudWatch にエラーメトリクスを送信したとき、Amazon SNS トピックにメッセージが投稿されるようにします。Amazon SNS トピックに、電子メール通知を受け取るようにサブスクライブします。このチュートリアルでは、以下の手順でこの設定を行います。

    • Amazon SNS トピックを作成する。

    • 新しいメッセージがトピックに投稿されたときに E メール通知を取得するようにトピックにサブスクライブします。

    • Amazon CloudWatch で Lambda 関数の Errors メトリクスにアラームを設定し、エラー発生時に SNS トピックにメッセージを発行するようにします。

前提条件

このチュートリアルでは、基本的な Lambda オペレーションと Lambda コンソールについてある程度の知識があることを前提としています。初めての方は、コンソールで Lambda の関数の作成 の手順に従って最初の Lambda 関数を作成してください。

Lambda 関数の作成

  1. AWS Management Console にサインインして AWS Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  2. [Create function] (関数の作成) を選択します。

  3. [設計図の使用] を選択します。

  4. 検索バーに「canary」と入力します。[lambda-canary] 設計図を選択し、[設定] を選択します。

  5. 以下を設定します。

    • Name - lambda-canary

    • RoleAWS ポリシーテンプレートから新しいロールを作成します

    • Role namelambda-apigateway-role

    • Policy templatesシンプルなマイクロサービスのアクセス許可

    • Rule新しいルールを作成します

    • Rule nameCheckWebsiteScheduledEvent

    • Rule descriptionCheckWebsiteScheduledEvent trigger

    • ルールタイプSchedule expression

    • Schedule expressionrate(1 minute)

    • 環境変数

      • sitehttps://docs.aws.amazon.com/lambda/latest/dg/welcome.html

      • expectedWhat is AWS Lambda?

  6. [Create function] (関数の作成) を選択します。

Eventbridge (CloudWatch Events) は、スケジュール表現に基づいてイベントを 1 分おきに発行します。イベントにより Lambda 関数がトリガーされ、予想される文字列が指定されたページに表示されことが確認されます。スケジュール式の詳細については、「」を参照してくださいRate または Cron を使用したスケジュール式

Lambda 関数をテストする

Lambda コンソールが提供するサンプルイベントを使用して関数をテストします。

  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. lambda-canary 関数を選択します。

  3. [Test] を選択します。

  4. CloudWatch イベントテンプレートを使用して新しいイベントを作成します。

  5. [ イベントの作成 ] を選択します。

  6. [呼び出し] を選択します。

関数実行の出力がページの上部に表示されます。

Amazon SNS トピックを作成してサブスクライブします。

Canary 関数がエラーを返したときに通知を受け取るための、Amazon Simple Notification Service (Amazon SNS) トピックを作成します。

トピックを作成するには

  1. Amazon SNS コンソールを開きます。

  2. [トピックの作成] を選択します。

  3. 次の設定でトピックを作成します。

    • Name - lambda-canary-notifications

    • Display nameCanary

  4. [Create subscription] を選択します。

  5. 次の設定でサブスクリプションを作成します。

    • ProtocolEmail

    • Endpoint – お使いの E メールアドレスです。

Amazon SNS が Canary <no-reply@sns.amazonaws.com> から E メールを送信します。トピックのフレンドリ名が反映されます。メール内のリンクを使用してアドレスを確認します。

アラームの設定

Lambda 関数を監視し、エラーが発生した場合に通知を送信するアラームを Amazon CloudWatch で設定します。

アラームを作成するには

  1. CloudWatch コンソールを開きます。

  2. [Alarms] を選択します。

  3. [アラームの作成] を選択します。

  4. [Alarms] を選択します。

  5. 次の設定でアラームを作成します。

    • Metricslambda-canary エラー

      lambda canary errors を検索してメトリクスを見つけます。

    • Statistic – Sum

      プレビューグラフの上にあるドロップダウンメニューから統計を選択します。

    • Name - lambda-canary-alarm

    • DescriptionLambda canary alarm

    • Threshold – エラーが >= である場合に常時1

    • Send notification tolambda-canary-notifications

アラームのテスト

関数の設定を更新し、関数がエラーを返すようにします。これにより、アラームがトリガーされます。

アラームをトリガーするには

  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. lambda-canary 関数を選択します。

  3. 下にスクロールします。[環境変数] で、[編集] を選択します。

  4. [予定] を 404 に設定します。

  5. [Save] を選択します。

少し待ってから、Amazon SNS からのメッセージが E メールされていることを確認します。

リソースのクリーンアップ

このチュートリアル用に作成したリソースは、保持を希望しない場合、すぐに削除できます。使用しなくなった AWS リソースを削除することで、AWS アカウントに請求される料金が発生しないようにできます。

Lambda 関数を削除するには

  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. 作成した関数を選択します。

  3. [アクション] を選択してから、[削除] をクリックします。

  4. [削除] を選択します。

CloudWatch アラームを削除するには

  1. CloudWatch コンソールのアラームのページを開きます。

  2. 作成したアラームを選択します。

  3. [ Actions] で、[Delete ] を選択します。

  4. [削除] を選択します。

Amazon SNS サブスクリプションを削除するには

  1. Amazon SNS コンソールのSubscriptions page] (サブスクリプションページ) をを開きます。

  2. 作成したサブスクリプションを選択します。

  3. [Delete] (削除) を選択し、削除します。

Amazon SNS トピックを作成するには

  1. Amazon SNS コンソールで [Topics (トピック)] ページを開きます。

  2. 先ほど作成したトピックを選択します。

  3. [削除] を選択します。

  4. テキストボックスに「delete me」と入力します。

  5. [削除] を選択します。