Using AWS Lambda with Amazon CloudWatch Events - AWS Lambda

Using AWS Lambda with Amazon CloudWatch Events

Amazon CloudWatch 이벤트는 AWS 리소스의 상태 변경에 응답할 수 있게 해줍니다. 리소스 상태가 변경될 경우 이벤트를 이벤트 스트림으로 자동 전송합니다. 스트림에서 선택된 이벤트와 일치할 경우 AWS Lambda 함수로 라우팅하여 작업을 실행하는 규칙을 생성할 수 있습니다. 예를 들어, AWS Lambda 함수를 자동으로 호출하여 EC2 인스턴스 또는 AutoScaling 그룹의 상태를 로깅할 수 있습니다.

CloudWatch 이벤트는 소스에서 이벤트를 래핑하는 이벤트 문서를 사용하여 함수를 비동기적으로 호출합니다. 다음 예제에서는 Amazon Relational Database Service의 데이터베이스 스냅샷에서 발생한 이벤트를 보여줍니다.

예 CloudWatch 이벤트 이벤트를 트리거합니다

{ "version": "0", "id": "fe8d3c65-xmpl-c5c3-2c87-81584709a377", "detail-type": "RDS DB Instance Event", "source": "aws.rds", "account": "123456789012", "time": "2020-04-28T07:20:20Z", "region": "us-east-2", "resources": [ "arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1" ], "detail": { "EventCategories": [ "backup" ], "SourceType": "DB_INSTANCE", "SourceArn": "arn:aws:rds:us-east-2:123456789012:db:rdz6xmpliljlb1", "Date": "2020-04-28T07:20:20.112Z", "Message": "Finished DB Instance backup", "SourceIdentifier": "rdz6xmpliljlb1" } }

Lambda 함수를 생성하고 AWS Lambda에 이를 정기적으로 실행하도록 지시할 수도 있습니다. 고정 비율(예: 1시간 또는 15분마다 Lambda 함수 실행)을 지정하거나 Cron 식을 지정할 수 있습니다.

예 CloudWatch 이벤트 메시지 이벤트

{ "account": "123456789012", "region": "us-east-2", "detail": {}, "detail-type": "Scheduled Event", "source": "aws.events", "time": "2019-03-01T01:23:45Z", "id": "cdc73f9d-aea9-11e3-9d5a-835b769c0d9c", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-schedule" ] }

CloudWatch 이벤트를 구성하여 함수를 호출하려면

  1. Lambda 콘솔 함수 페이지를 엽니다.

  2. 함수 선택

  3. Designer에서 트리거 추가를 선택합니다.

  4. 트리거 유형을 CloudWatch 이벤트/EventBridge로 설정합니다.

  5. 규칙에서 새 규칙 생성을 선택합니다.

  6. 나머지 옵션을 구성하고 추가를 선택합니다.

표현식 예약에 대한 자세한 내용은 Rate 또는 Cron을 사용한 예약 표현식 단원을 참조하십시오.

각 AWS 계정에는 소스 유형이 CloudWatch 이벤트- 일정인 고유한 이벤트 소스가 최대 100개까지 있을 수 있습니다. 이들 각각이 최대 5개의 Lambda 함수에 대한 이벤트 소스가 될 수 있습니다. 즉, AWS 계정에서 정기적으로 실행할 수 있는 Lambda 함수를 최대 500개까지 가질 수 있습니다.