チュートリアル: スケジュールされたイベントでの 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 関数の作成
AWS Management Console にサインインして AWS Lambda コンソール (https://console.aws.amazon.com/lambda/
) を開きます。 -
[Create function] (関数の作成) をクリックします。
-
[設計図の使用] を選択します。
-
検索バーに「
canary
」と入力します。[lambda-canary] 設計図を選択し、[設定] を選択します。 -
以下を設定します。
-
名前 –
lambda-canary
。 -
Role – AWS ポリシーテンプレートから新しいロールを作成します。
-
ロール名 –
lambda-apigateway-role
。 -
Policy templates – シンプルなマイクロサービスのアクセス許可。
-
Rule – 新しいルールを作成します。
-
Rule name –
CheckWebsiteScheduledEvent
。 -
Rule description –
CheckWebsiteScheduledEvent trigger
。 -
ルールタイプ –
Schedule expression
。 -
Schedule expression –
rate(1 minute)
。 -
環境変数
-
site –
https://docs.aws.amazon.com/lambda/latest/dg/welcome.html
。 -
expected –
What is AWS Lambda?
。
-
-
-
[Create function] (関数の作成) をクリックします。
Eventbridge (CloudWatch Events) は、スケジュール表現に基づいてイベントを 1 分おきに発行します。イベントにより Lambda 関数がトリガーされ、予想される文字列が指定されたページに表示されことが確認されます。スケジュール式の詳細については、「」を参照してくださいRate または Cron を使用したスケジュール式
Lambda 関数をテストする
Lambda コンソールが提供するサンプルイベントを使用して関数をテストします。
Lambda コンソールの [Functions]
(関数) ページを開きます。 -
lambda-canary 関数を選択します。
-
[Test] (テスト) を選択します。
-
CloudWatch イベントテンプレートを使用して新しいイベントを作成します。
-
[ イベントの作成 ] を選択します。
-
[呼び出し] を選択します。
関数実行の出力がページの上部に表示されます。
Amazon SNS トピックを作成してサブスクライブします。
Canary 関数がエラーを返したときに通知を受け取るための、Amazon Simple Notification Service (Amazon SNS) トピックを作成します。
トピックを作成するには
-
Amazon SNS コンソール
を開きます。 -
[トピックの作成] を選択します。
-
次の設定でトピックを作成します。
-
名前 –
lambda-canary-notifications
。 -
Display name –
Canary
。
-
-
[Create subscription] を選択します。
-
次の設定でサブスクリプションを作成します。
-
Protocol –
Email
。 -
Endpoint – お使いの E メールアドレスです。
-
Amazon SNS が Canary <no-reply@sns.amazonaws.com>
から E メールを送信します。トピックのフレンドリ名が反映されます。メール内のリンクを使用してアドレスを確認します。
アラームの設定
Lambda 関数を監視し、エラーが発生した場合に通知を送信するアラームを Amazon CloudWatch で設定します。
アラームを作成するには
-
CloudWatch コンソール
を開きます。 -
[Alarms] を選択します。
-
[アラームの作成] を選択します。
-
[Alarms] を選択します。
-
次の設定でアラームを作成します。
-
Metrics – lambda-canary エラー。
lambda canary errors
を検索してメトリクスを見つけます。 -
Statistic –
Sum
。プレビューグラフの上にあるドロップダウンメニューから統計を選択します。
-
名前 –
lambda-canary-alarm
。 -
Description –
Lambda canary alarm
。 -
Threshold – エラーが >= である場合に常時
1
。 -
Send notification to –
lambda-canary-notifications
。
-
アラームのテスト
関数の設定を更新し、関数がエラーを返すようにします。これにより、アラームがトリガーされます。
アラームをトリガーするには
Lambda コンソールの [Functions]
(関数) ページを開きます。 -
lambda-canary 関数を選択します。
-
下にスクロールします。[環境変数] で、[編集] を選択します。
-
[予定] を
404
に設定します。 -
[Save] を選択します。
少し待ってから、Amazon SNS からのメッセージが E メールされていることを確認します。
リソースのクリーンアップ
このチュートリアル用に作成したリソースは、保持を希望しない場合、すぐに削除できます。使用しなくなった AWS リソースを削除することで、AWS アカウントに請求される料金が発生しないようにできます。
Lambda 関数を削除するには
-
Lambda コンソールの [Functions]
(関数) ページを開きます。 -
作成した関数を選択します。
-
[アクション] を選択してから、[削除] をクリックします。
-
[Delete] (削除) をクリックします。
CloudWatch アラームを削除するには
-
CloudWatch コンソールのアラームのページ
を開きます。 -
作成したアラームを選択します。
-
[ Actions] で、[Delete ] を選択します。
-
[Delete] (削除) をクリックします。
Amazon SNS サブスクリプションを削除するには
-
Amazon SNS コンソールのSubscriptions page
] (サブスクリプションページ) をを開きます。 -
作成したサブスクリプションを選択します。
-
[Delete] (削除) を選択し、削除します。
Amazon SNS トピックを作成するには
-
Amazon SNS コンソールで [Topics (トピック)] ページ
を開きます。 -
先ほど作成したトピックを選択します。
-
[Delete] (削除) をクリックします。
-
テキストボックスに「
delete me
」と入力します。 -
[Delete] (削除) をクリックします。