過去の記事でS3をトリガーとしたLambdaの実行を行いました。
S3だけだとイメージを掴みづらいかもしれないので、もう1つ別のAWSサービスをトリガーとして使ってみようと思います。
- ■トリガーとして利用できるAWSサービスについて
- ■作業イメージ
- ■流れ
- ■1.Lambda関数の作成
- ■2.CloudwatchEventsの設定
- ■3.lambda関数のトリガー情報を確認
- ■4.動作確認
- ■5.後片付け
■トリガーとして利用できるAWSサービスについて
既にS3をトリガーとして使えることは実証済みですが、
他にも下記の主要なAWSサービスが利用できます。
・ALB
・Cloudwatch Logs
・Cloudwatch Events(=EventBridge)
・CodeCommit
・DynamoDB
・S3
・SNS
・SQS
全量は下記サイトにございます。
他のサービスで AWS Lambda を使用する - AWS Lambda
今回は、Cloudwatch Eventsを使ったLambda起動をやってみます。
余談ですが、CloudwatchEventsは現在は旧称になっており、
現在は、EventBrideと言います。
■作業イメージ
CloudwatchEventsのスケジュール内容に連動し、Lambdaが起動するようにします。
今回は1分間隔でLambdaが起動するようにCloudwatchEventsを設定します。
■流れ
1.Lambda関数の作成
2.Cloudwatch Eventsの設定
3.lambda関数のトリガー情報を確認
4.動作確認
5.後片付け
■1.Lambda関数の作成
詳細は下記記事で記載済みのため、ここではざっくりとした説明してませんがご了承ください。
1.Lambda関数を新規作成し、以下のコードを設定します。
ここでは、Lambda関数をtest2としています。
import json from datetime import datetime def lambda_handler(event, context): print("■■■■■■■■ 実行されました! 起動時刻> " + datetime.now().strftime("%Y/%m/%d %H:%M:%S") )
2.念のため、テストを実行し、エラーとならないことを確認します。
■2.CloudwatchEventsの設定
やり方はいくつかありますが、
個人的にわかりやすいと思われる方法を記載しております。
1.Cloudwatchを開きます。
2.「ルール」をクリックし、「ルールの作成」を選択します。
3.「スケジュール」を選択します。
スケジュールを選択後、1分ごとに起動するようにしたいので、
下記の通り設定します。
4.「ターゲットの追加」をクリックします。
5.「Lambda関数」を選択します。
※デフォルトで選択されているはずですが、違うものが選択されている場合には変更してください。
6.以下の通り設定し、「設定の詳細」をクリックします。
ここでは、事前に作成したLambda関数であるtest2を選択しています。
また、「バージョン/エイリアスの設定」「入力の設定」はデフォルトのままで大丈夫です。
7.適当な名前をつけ、「ルールの作成」をクリックします。
ここでは、「lambda-test2-func」としました。
8.ルールが作成されたことを確認します。
■3.lambda関数のトリガー情報を確認
1.再度、Lambdaを開きます。
ここでは、test2を開いています。
2.以下のように、トリガー部分にCloudwatchEventsが表示されていることを確認します。
3.上記画像の「EventBridge(CloudwatchEvents)」をクリックします。
4.画面表示がトリガーに特化したものに切り替わります。
さきほど作成した内容が表示されているかと思います。
■4.動作確認
1.Cloudwatchを開きます
2.左ペインで「ロググループ」をクリックします。
3.対象のロググループを選択します。
ここでは、/aws/lambda/test2 を選択しています。
4.最新のログストリームをクリックします。
※本来は、CloudwatchEventsを設定した時間のものを開きます。
クリックすると、1分ごとにLambda関数が実行されていることがわかるかと思います。
■5.後片付け
このままですと、1分ごとにLambda関数が起動してしまうため、
一旦CloudwatchEventsを停止させます。
1.Cloudwatchの「イベント」>「ルール」をクリックし、今回設定したルールを選択します。
※ここでは、「lambda-test2-func」を選択しています。
2.画面右上の「アクション」をクリックし、「無効化」を選択します。
3.ダイアログボックスが表示されるため、「無効化」をクリックします。
4.再度ルールの画面を開き、ステータスが灰色時計になっていることを確認します。
以上です。