AWS CloudFormation 스택이 생성한 AWS Lambda 함수의 Amazon EventBridge 이벤트 규칙 트리거를 확인하고 싶습니다.
간략한 설명
CloudFormation 스택을 통해 AWS::Events::Rule 및 AWS::Lambda::Function 리소스를 생성할 때 Lambda 콘솔에 이벤트 규칙 트리거가 표시되지 않을 수 있습니다. 이 문제는 일반적으로 EventBridge에 Lambda 함수를 호출할 권한이 없을 때 발생합니다. 또한 이벤트 규칙 리소스가 CloudFormation 스택 외부에서 삭제되는 경우에도 발생할 수 있습니다.
해결 방법
EventBridge에 Lambda 함수를 호출할 권한이 없음
CloudFormation 스택에서 AWS::Lambda::Permission 리소스를 사용하여 대상 Lambda 함수의 리소스 기반 정책에 lambda:InvokeFunction 권한을 추가합니다.
예를 들어 다음 리소스를 사용하여 EventRule 리소스에 Lambda 함수를 호출할 권한을 부여합니다.
PermissionForEventsToInvokeLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName: !Ref LambdaFunction
Action: lambda:InvokeFunction
Principal: events.amazonaws.com
SourceArn: !GetAtt EventRule.Arn
권한을 부여하면 Lambda 콘솔에 이벤트 규칙 트리거가 나타납니다.
이벤트 규칙 리소스가 CloudFormation 스택 외부에서 삭제됨
CloudFormation 스택 외부에서 EventBridge 이벤트 규칙을 삭제하면 Lambda 트리거에 이벤트 규칙이 표시되지 않습니다.
이 문제를 해결하려면 템플릿에서 리소스의 논리적 ID를 변경하여 리소스를 다시 생성하십시오.
관련 정보
AWS::Lambda::Permission
이벤트에 대한 응답으로 Lambda 함수 호출