CloudWatch Events 규칙에 의해 Lambda 함수가 트리거 되지 않은 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 5월 11일

AWS 명령줄 인터페이스(AWS CLI), API 또는 AWS CloudFormation을 사용하여 Amazon CloudWatch Events 규칙을 생성했습니다. 하지만 대상 AWS Lambda 함수가 호출되지 않습니다. AWS Management Console을 통해 동일한 CloudWatch Events 규칙을 생성하거나 업데이트하면 규칙이 올바르게 작동합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS Management Console을 사용하여 Lambda 함수를 대상으로 하는 CloudWatch Events 규칙을 생성할 때는 적절한 권한이 함수의 리소스 기반 정책에 자동으로 추가됩니다. AWS CLI, API 또는 AWS CloudFormation을 통해 동일한 규칙을 생성할 때는 events.amazonaws.com이 Lambda 함수를 호출할 수 있도록 리소스 정책에 권한을 추가해야 합니다.

​해결 방법

CloudWatch Events 규칙에 대한 "Invocations" 및 "FailedInvocations" 지표 검토

AWS/Events 네임스페이스에서 CloudWatch Events 규칙에 대한 "Invocations" 및 "FailedInvocations" 지표를 확인합니다. 두 지표에 대한 데이터 포인트가 있다면 CloudWatch Events 규칙이 대상을 호출하려고 시도했지만 호출에 실패한 것입니다. "FailedInvocations" 지표에는 재시도 된 호출이 포함되어 있지 않으므로 대상에 대한 권한 문제 또는 잘못된 구성을 수정해야 합니다.

Lambda 함수의 리소스 기반 정책의 CloudWatch Events에 대해 적절한 권한이 추가되었는지 확인

AWS Lambda 콘솔을 열고 대상 함수를 선택합니다. Permissions를 선택한 후 적절한 권한이 구성되어 있는지 확인합니다.

또는 GetPolicy 명령을 사용하여 함수의 리소스 기반 정책을 확인합니다. 명령의 출력에서 정책의 신뢰할 수 있는 엔터티인 events.amazonaws.com을 찾습니다. events.amazonaws.com을 찾을 수 없는 경우 AddPermission 명령을 사용하여 권한을 추가합니다. 보안 주체를 events.amazonaws.com으로 설정합니다. 예:

aws lambda add-permission --function-name MyFunction --statement-id MyId --action 'lambda:InvokeFunction' --principal events.amazonaws.com --source-arn arn:aws:events:us-east-1:123456789012:rule/MyRule

참고: 함수 및 Amazon 리소스 이름(ARN) 값을 함수 및 ARN에 해당하는 값으로 바꿔야 합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?