내 Lambda 함수를 호출하도록 CloudWatch 구독 필터를 구성하려면 어떻게 해야 합니까?

2분 분량
0

AWS Lambda 함수를 호출하도록 Amazon CloudWatch 구독 필터를 구성하고 싶습니다.

간략한 설명

Amazon CloudWatch Logs에서는 Lambda 함수로 로그 데이터를 보내는 구독 필터를 사용할 수 있습니다. CloudWatch Logs 구독 필터는 base64로 인코딩되고 GZIP 형식으로 압축됩니다.

Lambda 함수를 생성하기 전에 생성할 로그 데이터의 양을 계산해야 합니다. 그리고 해당 볼륨 용량을 관리할 수 있는 함수를 생성해야 합니다. 함수의 볼륨이 충분하지 않으면 로그 스트림에서 병목 현상이 발생합니다. 자세한 내용은 Lambda 할당량을 참조하세요.

참고: 대량의 CloudWatch Logs 데이터를 스트리밍하면 사용량에 따른 요금이 많이 발생할 수 있습니다. AWS Budgets를 사용하여 지출과 사용량을 추적하는 것이 좋습니다. 자세한 지침은 AWS Budgets를 사용하여 지출 및 사용량을 추적하려면 어떻게 해야 합니까?를 참조하세요.

해결 방법

로그 데이터를 AWS Lambda 함수로 보내는 CloudWatch Logs 구독 필터를 생성하세요.

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

1.    다음과 유사한 add-permission AWS CLI 명령을 실행하여 Lambda 함수를 호출할 수 있는 CloudWatch Logs 권한을 제공합니다.

aws lambda add-permission \
    --function-name "helloworld" \
    --statement-id "helloworld" \
    --principal "logs.amazonaws.com" \
    --action "lambda:InvokeFunction" \
    --source-arn "arn:aws:logs:region:123456789123:log-group:YourLogGroup:*" \
    --source-account "123456789012"

중요: ‘helloworld’를 실제 Lambda 함수 이름으로, ‘YourLogGroup’을 실제 로그 그룹으로, 예제 계정 번호를 실제 계정으로 바꾸세요.

2.    키워드가 포함된 로그 이벤트를 전송할 수 있도록 put-subscription-filter AWS CLI 명령을 사용하여 구독 필터를 생성합니다. 다음 예에서는 Lambda 함수에 ‘ERROR’라는 키워드를 사용합니다.

중요: ‘YourLogGroup’을 실제 로그 그룹으로 바꾸고 예제 계정 번호를 실제 계정으로 바꾸세요.

aws logs put-subscription-filter \
    --log-group-name YourLogGroup \
    --filter-name demo \
    --filter-pattern "ERROR" \
    --destination-arn arn:aws:lambda:region:123456789123:function:helloworld

CloudWatch 로그 그룹 ’YourLogGroup’은 키워드 ‘ERROR’가 포함된 다음과 유사한 로그 이벤트를 수신할 때 Lambda 함수를 호출합니다.

{
  "awslogs": {
    "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA=="
  }
}

관련 정보

필터 및 패턴 구문

AWS 공식
AWS 공식업데이트됨 일 년 전