AWS Lambda
開発者ガイド

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

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

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

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

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

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

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

前提条件

This tutorial assumes that you have some knowledge of basic Lambda operations and the Lambda console. If you haven't already, follow the instructions in 開始方法 to create your first Lambda function.

Lambda 関数の作成

  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/lambda/ にある AWS Lambda コンソールを開きます。

  2. [Create function] を選択します。

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

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

  5. 以下を設定します。

    • Name (名前)lambda-canary

    • [ロール] – [Create a new role from one or more templates (1 つ以上のテンプレートから新しいロールを作成)]。

    • ロール名lambda-apigateway-role

    • [ポリシーテンプレート] – [シンプルなマイクロハーネスのアクセス権限]。

    • [ルール] – [Create a new rule (新しいルールの作成)]。

    • [Rule name (ルール名)] – CheckWebsiteScheduledEvent

    • [Rule description (ルールの説明)] – CheckWebsiteScheduledEvent trigger

    • [スケジュール式] – rate(1 minute)

    • [有効] – True (オン)。

    • 環境変数

      • [site (サイト)] – https://docs.aws.amazon.com/lambda/latest/dg/welcome.html

      • [expected (予定)] – What Is AWS Lambda?

  6. [Create function] を選択します。

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

Lambda 関数をテストする

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

  1. Open the Lambda console Functions page.

  2. [lambda-canary] を選択します。

  3. ページの上部にある [テスト] ボタンの横で、ドロップダウンメニューから [テストイベントの設定] を選択します。

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

  5. [作成] を選択します。

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

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

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

Amazon Simple Notification Service トピックを作成し、canary 関数がエラーを返したときに通知を受け取ります。

トピックを作成するには

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

  2. [Create topic] を選択します。

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

    • Name (名前)lambda-canary-notifications

    • [Display name (表示名)] – Canary

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

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

    • [Protocol (プロトコル)] – Email

    • [Endpoint (エンドポイント)] – E メールアドレス。

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

アラームの設定

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

アラームを作成するには

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

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

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

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

  5. 次の設定で作成します。

    • [メトリクス] – [lambda-canary Errors (lambda-canary エラー)]。

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

    • 統計 – Sum

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

    • Name (名前)lambda-canary-alarm

    • [説明] – Lambda canary alarm

    • しきい値 – [Whenever Errors is >=1]。

    • [Send notification to (通知の送信先)] – lambda-canary-notifications

アラームのテスト

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

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

  1. Open the Lambda console Functions page.

  2. [lambda-canary] を選択します。

  3. [環境変数] で、[expected (予定)] を 404 に設定します。

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

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