에서 이벤트 패턴 생성 EventBridge - 아마존 EventBridge

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

에서 이벤트 패턴 생성 EventBridge

이벤트 패턴을 만들려면 이벤트 패턴에서 매칭할 이벤트의 필드를 지정합니다. 매칭에 사용하는 필드만 지정하세요.

예를 들어, 다음 이벤트 패턴 예제는 최상위 필드 "source" 및 및 "detail-type" "detail" 개체 "state" 필드 내 필드의 세 필드에 대한 값만 제공합니다. EventBridge규칙을 적용할 때 이벤트의 다른 모든 필드를 무시합니다.

{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["terminated"] } }

이벤트와 이벤트 패턴을 매칭하려면 이벤트에 이벤트 패턴에 나열된 모든 필드 이름이 포함되어 있어야 합니다. 필드 이름은 같은 중첩 구조를 가진 이벤트에도 나타나야 합니다.

이벤트를 일치시키는 이벤트 패턴을 작성할 때는 TestEventPattern API 또는 test-event-pattern CLI 명령을 사용하여 패턴이 올바른 이벤트와 일치하는지 테스트할 수 있습니다. 자세한 내용은 TestEventPattern를 참조하세요.

이벤트 값 일치

이벤트 패턴에서 일치시킬 값은 대괄호 (“[”, “]”) 로 둘러싸인 JSON 배열이므로 여러 값을 제공할 수 있습니다. 예를 들어 Amazon EC2 또는 AWS Fargate의 이벤트를 매칭하려면 "source" 필드 값이 또는 "aws.ec2" 인 이벤트와 일치하는 다음 패턴을 사용할 수 "aws.fargate" 있습니다.

{ "source": ["aws.ec2", "aws.fargate"] }

자세한 내용은 여러 필드 값에 대한 매칭 단원을 참조하십시오.

Amazon EventBridge 이벤트 패턴에서 비교 연산자 사용

EventBridge Amazon은 이벤트 패턴을 사용한 선언적 콘텐츠 필터링을 지원합니다. 콘텐츠 필터링을 사용하면 매우 특정한 조건에서만 이벤트와 일치하는 복잡한 이벤트 패턴을 작성할 수 있습니다. 예를 들어 다음과 같은 경우 이벤트와 일치하는 이벤트 패턴을 생성할 수 있습니다.

  • 이벤트 필드는 특정 숫자 범위 내에 있습니다.

  • 이벤트는 특정 IP 주소에서 발생합니다.

  • 특정 필드는 이벤트에 JSON 존재하지 않습니다.

자세한 내용은 비교 연산자 단원을 참조하십시오.

이벤트 패턴 생성 시 고려 사항

다음은 이벤트 패턴을 구성할 때 고려해야 할 몇 가지 사항입니다.

  • EventBridge 이벤트 패턴에 포함되지 않은 이벤트의 필드를 무시합니다. 그 결과 이벤트 패턴에 나타나지 않는 필드에 "*": "*" 와일드카드가 있습니다.

  • 이벤트 패턴과 일치하는 값은 JSON 규칙을 따릅니다. 따옴표(“)로 묶인 문자열, 숫자 및 키워드(true, falsenull)를 포함할 수 있습니다.

  • 문자열의 경우 EventBridge 대소문자를 바꾸거나 다른 문자열 정규화를 사용하지 않고 정확히 character-by-character 일치시킵니다.

  • 숫자의 경우 문자열 표현을 EventBridge 사용합니다. 예를 들어 300, 300.0 및 3.0e2는 동일한 것으로 간주되지 않습니다.

  • 동일한 JSON 필드에 여러 패턴을 지정한 경우 마지막 EventBridge 패턴만 사용합니다.

  • 사용할 이벤트 패턴을 EventBridge 컴파일할 때는 점 (.) 을 조인 문자로 사용한다는 점에 유의하십시오.

    즉, 다음 이벤트 패턴을 동일하게 취급한다는 EventBridge 의미입니다.

    ## has no dots in keys { "detail" : { "state": { "status": [ "running" ] } } } ## has dots in keys { "detail" : { "state.status": [ "running" ] } }

    그리고 두 이벤트 패턴이 모두 다음 두 이벤트와 일치합니다.

    ## has no dots in keys { "detail" : { "state": { "status": "running" } } } ## has dots in keys { "detail" : { "state.status": "running" } }
    참고

    이것은 현재의 EventBridge 행동을 설명하며, 변하지 않을 것이라고 믿어서는 안 됩니다.

  • 중복된 필드를 포함하는 이벤트 패턴은 유효하지 않습니다. 패턴에 중복 필드가 포함된 경우 최종 필드 EventBridge 값만 고려합니다.

    예를 들어 다음 이벤트 패턴은 동일한 이벤트와 일치합니다.

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sns.amazonaws.com"] } }

    그리고 다음 두 이벤트를 동일하게 EventBridge 취급합니다.

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } ] } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["sns.amazonaws.com"] } ] }
    참고

    이것은 현재의 EventBridge 행동을 설명하며, 변하지 않을 것이라고 믿어서는 안 됩니다.