

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

# 이벤트 패턴 구문
<a name="eb-create-pattern"></a>

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

예를 들어, 다음 이벤트 패턴 예제에서는 최상위 필드 `"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](https://docs.aws.amazon.com/AmazonCloudWatchEvents/latest/APIReference/API_TestEventPattern.html)을 참조하세요.

## 이벤트 값 일치
<a name="eb-filtering-match-values"></a>

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

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

자세한 내용은 [여러 필드 값에서 일치](eb-event-patterns-arrays.md) 단원을 참조하십시오.

## Amazon EventBridge 이벤트 패턴에서 비교 연산자 사용
<a name="eb-event-patterns-content-based-filtering"></a>

Amazon EventBridge는 이벤트 패턴을 사용하여 선언적 콘텐츠 필터링을 지원합니다. 콘텐츠 필터링을 사용하면 매우 특정한 조건에서만 이벤트와 일치하는 복잡한 이벤트 패턴을 작성할 수 있습니다. 예를 들어 다음과 같은 경우 이벤트와 일치하는 이벤트 패턴을 생성할 수 있습니다.
+ 이벤트 필드는 특정 숫자 범위 내에 있습니다.
+ 이벤트는 특정 IP 주소에서 발생합니다.
+ 이벤트 JSON에는 특정 필드가 없습니다.

자세한 내용은 [비교 연산자](eb-create-pattern-operators.md) 단원을 참조하십시오.

## 이벤트 패턴 생성 시 고려 사항
<a name="eb-create-pattern-considerations"></a>

다음은 이벤트 패턴을 구성할 때 고려해야 할 몇 가지 사항입니다.
+ EventBridge는 이벤트 패턴에 포함되지 않은 이벤트의 필드를 무시합니다. 그 결과 이벤트 패턴에 나타나지 않는 필드에 `"*": "*"` 와일드카드가 있습니다.
+ 이벤트 패턴이 매칭하는 값은 JSON 규칙을 따릅니다. 따옴표(“)로 묶인 문자열, 숫자 및 키워드(`true`, `false` 및 `null`)를 포함할 수 있습니다.
+ 문자열의 경우 EventBridge는 대소문자 변환이나 기타 문자열 정규화 없이 정확한 문자별 일치를 사용합니다.
+ 숫자의 경우 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 동작을 설명하며, 변경되지 않을 것이라고 간주해서는 안 됩니다.