AWS CloudWatchでLambda関数をトリガーするイベントを作成する方法
AWS CloudWatchでLambda関数をトリガーするイベントを作成する方法
このページで
- 前提条件
- 私たちは何をしますか?
- AWSにログインする
- Lambda関数をトリガーするためのCloudWatchイベントを作成する
- 結論
Amazon CloudWatch EventsはAWSリソースの変更を説明します。我々はイベントを一致させ、それらを1つまたは複数のターゲット関数にルーティングできます。CloudWatch Eventsは、運用上の変更が発生する際にそのことを知ります。たとえば、Cloudwatchルールで定義されたリソースが作成された場合、そのルールはそのことを知り、その結果としてターゲット関数をトリガーします。
進む前に、イベントルールを作成する前に、それの基本を理解しましょう。
- イベント:
イベントは、AWS環境に変化があることを意味します。 - ルール:
ルールはイベントを照合するために使用されます。ここでは、イベントが比較されて確認されます。 - ターゲット:
ここではイベントが処理されます。ターゲットには、Amazon EC2インスタンス、AWS Lambda関数、Kinesisストリーム、Amazon ECSタスク、Step Functionsステートマシン、Amazon SNSトピック、Amazon SQSキュー、および組み込みターゲットが含まれる場合があります。
この記事では、EC2の状態変化のイベントをチェックし、Lambda関数をトリガーするイベントルールを作成します。Lambda関数について知らない場合は、こちらをクリックして1つ作成してください。Lambdaの機能はあなたの選択ですが、この文書では使用されていないEBSボリュームを削除するLambdaを紹介しています。この記事にはLambdaコードも記載しています。あなたの独自のLambda関数を使用しても構いません。
前提条件
- AWSアカウント(お持ちでない場合は作成してください)。
- ラムダ関数。
私たちは何をしますか?
- AWSにログインしてください。
- Lambda関数を起動するためのCloudWatchイベントルールを作成します。
AWSにログインする
こちらをクリックしてAWSログインページに移動してください。
上記のリンクをクリックすると、以下のようなウェブページが表示され、ログイン情報を使用してログインする必要があります。
アカウントに成功裏にログインすると、次のような画面が表示されます。
Lambda関数をトリガーするためのCloudWatchイベントを作成する
Cloudwatchイベントルールを作成するには、Cloudwatchを検索し、結果をクリックしてCloudwatchダッシュボードに移動します。
Cloudwatchダッシュボードの左側パネルで、イベントの下にあるルールをクリックします。
ここで、「ルールを作成」をクリックして、あなたの地域でLambda関数をトリガーする最初のルールを作成します。
「イベントパターン」ラジオボタンを選択し、サービス名の下で「EC2」を選択し、イベントタイプに「EC2インスタンス状態変更通知」を選択します。
既存のLambda関数をターゲットとして追加するには「ターゲットを追加」をクリックし、「詳細を設定」をクリックします。
ここをクリックして、あなたのためにLambda関数を作成する方法を学びましょう。次の参照用Lambdaコードをご覧ください。
ラムダコード:アカウントにラムダ関数がない場合は、このコードを使用してラムダ関数を作成します。
import boto3
ec2 = boto3.resource('ec2',region_name='eu-west-3')
def lambda_handler(event, context):
for vol in ec2.volumes.all():
if vol.state=='available':
if vol.tags is None:
vid=vol.id
v=ec2.Volume(vol.id)
v.delete()
print ('EBS Volume Deleted ' +vid)
continue
for tag in vol.tags:
if tag['Key'] == 'Name':
value=tag['Value']
if value != 'DoNNotDel' and vol.state=='available':
vid=vol.id
v=ec2.Volume(vol.id)
v.delete()
print ('EBS Volume Deleted ' +vid)
イベントに名前を付け、その説明を記入し、「ルールを作成」をクリックしてください。
これにより、EC2インスタンスの状態に変更があるたびにターゲットのLambda関数をトリガーするイベントルールが作成されます。
結論
この記事では、EC2インスタンスの状態の変化を示すCloudwatchイベントルールを作成し、ルールがイベントと一致したときにLambda関数をトリガーする方法を見ました。あなたの選択したターゲットを選ぶことができます。






