GNU/Linux >> Linux の 問題 >  >> Linux

AWSCloudwatchでイベントを作成してLambda関数をトリガーする方法

Amazon CloudWatchイベントは、AWSリソースの変更について説明します。イベントを照合し、それらを1つ以上のターゲット関数にルーティングできます。 CloudWatchイベントは、運用上の変更が発生したときにそれを知るようになります。 Cloudwatch Ruleで定義されたリソースが作成されている場合、ルールはそれを認識し、その代わりにターゲット関数をトリガーします。

イベントルールを作成する前に、その基本を理解しましょう。

  1. イベント
    イベントは、AWS環境に変更があることを意味します。
  2. ルール
    ルールは、イベントに一致するために使用されます。ここで、イベントが比較およびチェックされます。
  3. ターゲット
    ここでイベントが処理されます。ターゲットには、Amazon EC2インスタンス、AWS Lambda関数、Kinesisストリーム、Amazon ECSタスク、Step Functionsステートマシン、Amazon SNSトピック、Amazon SQSキュー、組み込みターゲットを含めることができます。

この記事では、EC2状態変更のイベントをチェックし、ラムダ関数をトリガーするイベントルールを作成します。 Lambda関数に気付いていない場合は、ここをクリックして1を作成してください。 Lambdaが行うことはあなたの選択ですが、このドキュメントには、未使用のEBSボリュームを削除するLambdaがあります。この記事ではLambdaコードについて説明しました。独自のLambda関数も自由に使用できます。

前提条件

  1. AWSアカウント(アカウントがない場合は作成します)。
  2. ラムダ関数。

何をしますか?

  1. AWSにログインします。
  2. Lambda関数をトリガーするCloudwatchイベントルールを作成します。

AWSにログイン

ここをクリックしてAWSログインページに移動します。

上記のリンクをクリックすると、ログイン情報を使用してログインする必要がある次のWebページが表示されます。

アカウントに正常にログインすると、次のような画面が表示されます。

Lambda関数をトリガーするCloudwatchイベントを作成します

Cloudwatchイベントルールを作成するには、cloudwatchを検索し、結果をクリックしてCloudwatchダッシュボードに移動します。

Cloudwatchダッシュボードで、左側のパネルの[イベント]の下にある[ルール]をクリックします。

ここで、[ルールの作成]をクリックして、お住まいの地域でラムダ関数をトリガーする最初のルールを作成します。

[イベントパターン]ラジオボタンを選択し、[サービス名]で[EC2]を選択し、[イベントタイプ]で[EC2インスタンス状態変更通知]を選択します。

[ターゲットの追加]をクリックして既存のLambda関数をターゲットとして追加し、[詳細の構成]をクリックします。

ここをクリックして、Lambda関数を作成する方法を学びます。次の参照ラムダコードを見つけてください。

ラムダコード: アカウントに1がない場合は、このコードを使用して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インスタンスの状態の変化を示し、ルールがイベントに一致したときにLambda関数をトリガーするCloudwatchイベントルールを作成する方法を説明しました。選択したターゲットを選択できます。


Linux
  1. Terraformを使用してAWSでRDSインスタンスを作成する方法

  2. Terraformを使用してAWSでIAMロールを作成する方法

  3. Bash で関数を作成して呼び出す方法

  1. AWSインスタンス(EC2)でEBSボリュームを作成および追加する方法

  2. LinuxアプリケーションログをAWSCloudWatchに送信する方法

  3. aws-cliを使用してAWSCloudwatchを管理する方法

  1. Cloudformationを使用してAWSでVPCを作成する方法

  2. Amazonマシンイメージ(AMI)を作成してAWSで使用する方法

  3. AWSS3バケットで静的ウェブサイトを作成する方法