웹사이트 검색

Lambda 함수를 트리거하기 위해 AWS Cloudwatch에서 이벤트를 생성하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. AWS에 로그인
  4. Lambda 함수를 트리거하는 Cloudwatch 이벤트 생성\n
  5. 결론

Amazon CloudWatch Events는 AWS 리소스의 변경 사항을 설명합니다. 이벤트를 일치시키고 하나 이상의 대상 함수로 라우팅할 수 있습니다. CloudWatch 이벤트는 운영 변경 사항이 발생하면 이를 알게 됩니다. Cloudwatch 규칙에 정의된 리소스가 생성된 경우 규칙은 이에 대해 알게 되고 그 대가로 대상 함수를 트리거합니다.

진행하고 이벤트 규칙을 생성하기 전에 기본 사항을 이해합시다.

  1. 이벤트:
    이벤트는 AWS 환경에 변화가 있음을 의미합니다.\n
  2. 규칙:
    규칙은 이벤트를 일치시키는 데 사용됩니다. 여기에서 이벤트를 비교하고 확인합니다.\n
  3. 대상:
    여기에서 이벤트가 처리됩니다. 대상에는 Amazon EC2 인스턴스, AWS Lambda 함수, Kinesis 스트림, Amazon ECS 작업, Step Functions 상태 머신, Amazon SNS 주제, Amazon SQS 대기열 및 내장 대상이 포함될 수 있습니다.\n

이 기사에서는 EC2 상태 변경 이벤트를 확인하고 람다 함수를 트리거하는 이벤트 규칙을 생성합니다. Lambda 함수에 대해 잘 모르는 경우 여기를 클릭하여 1을 생성하십시오. Lambda가 수행하는 작업은 사용자가 선택할 수 있지만 이 문서에는 사용하지 않는 EBS 볼륨을 삭제하는 Lambda가 있습니다. 이 기사에서 Lambda 코드를 언급했습니다. 자체 Lambda 함수도 자유롭게 사용할 수 있습니다.

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. 람다 함수.\n

우리는 무엇을 할 것인가?

  1. AWS에 로그인합니다.\n
  2. Lambda 함수를 트리거하는 Cloudwatch 이벤트 규칙을 생성합니다.\n

AWS에 로그인

AWS 로그인 페이지로 이동하려면 여기를 클릭하세요.

위의 링크를 누르면 로그인 세부 정보를 사용하여 로그인해야 하는 다음과 같은 웹 페이지가 표시됩니다.

계정에 성공적으로 로그인하면 다음과 같은 화면이 표시됩니다.

Lambda 함수를 트리거하는 Cloudwatch 이벤트 생성

Cloudwatch 이벤트 규칙을 생성하려면 cloudwatch를 검색하고 결과를 클릭하여 Cloudwatch 대시보드로 이동합니다.

Cloudwatch 대시보드에서 왼쪽 패널의 이벤트 아래에 있는 규칙을 클릭합니다.

여기에서 "규칙 만들기"를 클릭하여 해당 지역에서 Lambda 함수를 트리거하는 첫 번째 규칙을 만듭니다.

"이벤트 패턴" 라디오 버튼을 선택하고 서비스 이름 아래에서 "EC2"를 선택하고 이벤트 유형으로 "EC2 인스턴스 상태 변경 알림"을 선택합니다.

대상 추가를 클릭하여 기존 Lambda 함수를 대상으로 추가하고 "세부 정보 구성"을 클릭합니다.

Lambda 함수를 생성하는 방법을 알아보려면 여기를 클릭하세요. 다음 참조 Lambda 코드를 찾으십시오.

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 인스턴스 상태의 변경을 나타내고 규칙이 이벤트와 일치할 때 Lambda 함수를 트리거하는 Cloudwatch 이벤트 규칙을 생성하는 방법을 살펴보았습니다. 원하는 대상을 선택할 수 있습니다.