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 トピックにメッセージを発行するようにします。

前提条件

このチュートリアルでは、基本的な Lambda オペレーションと Lambda コンソールについてある程度の知識があることを前提としています。まだ作成していない場合は、AWS Lambda の使用開始 の指示に従って、まず Lambda 関数を作成します。

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. Lambda コンソール (関数ページ) を開きます。

  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. Lambda コンソール (関数ページ) を開きます。

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

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

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

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