

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

# Amazon Chime SDK에 Amazon EventBridge 알림 사용
<a name="using-eventbridge-notifications"></a>

Amazon Chime SDK Call Analytics는 미디어 인사이트 파이프라인 상태가 변경되거나 통화 분석 실시간 알림 조건이 충족될 때 기본 EventBridge 버스로 이벤트를 전송할 수 있도록 지원합니다. 미디어 인사이트 파이프라인 오류 상태 업데이트의 경우 리소스가 비동기적으로 실패할 경우 이를 알리도록 EventBridge 대상을 구성하는 것이 좋습니다. 통화 분석 알림에는 aws.chime 소스와 다양한 세부 정보 유형이 있으며, 이는 다음 섹션에서 공유됩니다. 자세한 내용은 [Amazon EventBridge 사용자 설명서](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)를 참조하세요.

**Topics**
+ [상태 업데이트](#status-updates)
+ [실시간 경고](#realtime-alerts)

## 상태 업데이트
<a name="status-updates"></a>

 미디어 인사이트 파이프라인은 통화 분석 세션이 진행되면서 성공적으로 종료되거나 오류가 발생할 때 EventBridge 알림을 보냅니다. 다음과 같은 경우 ‘미디어 인사이트 상태 변경’ 세부 정보 유형이 포함된 EventBridge 알림을 받게 됩니다.
+ 미디어 파이프라인의 상태가 바뀝니다.
+ 미디어 파이프라인 요소의 상태가 바뀝니다.
+ 파이프라인 요소가 중지됩니다.
+ 파이프라인 요소가 실패합니다.

세부 정보 섹션에는 항상 다음 필드가 포함됩니다.
+ `version`
+ `mediaInsightsPipelineArn`
+ `eventType`

미디어 인사이트 파이프라인에 분석 프로세서, 데이터 싱크 등 여러 요소가 포함된 경우 세부 정보 섹션에는 `mediaInsightsPipelineElementStatuses` 필드도 포함됩니다. 이 필드는 파이프라인 내 각 요소의 상태를 나타냅니다. 각 파이프라인 요소의 가능한 상태는 다음과 같을 수 있습니다.
+ `NotStarted`
+ `InProgress`
+ `Stopped`
+ `Failed`

 세부 정보 섹션에는 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipeline.html) API 직접 호출 중에 `MediaInsightsRuntimeMetadata`에 지정된 모든 키-값 페어도 포함됩니다. 음성 커넥터로 통화 분석 세션을 시작한 경우 메타데이터 섹션은 다음 파라미터로 자동으로 채워집니다.
+ `transactionId`
+ `fromNumber`
+ `toNumber`
+ `callId`
+ `voiceConnectorId`
+ `direction`

 미디어 인사이트 파이프라인에 단일 요소가 포함될 때마다 다음과 같은 이벤트 유형이 나타날 수 있습니다. 각 섹션을 펼쳐 자세히 알아보세요.

### Amazon Chime SDK 미디어 인사이트 진행 중
<a name="insights-in-progress"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsInProgress",
        "version": "0",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Amazon Chime SDK 미디어 인사이트 일시 중지
<a name="insights-paused"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsPaused",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Amazon Chime SDK 미디어 인사이트 중지
<a name="insights-stoppped"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsStopped",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Amazon Chime SDK 미디어 인사이트 일시적 실패
<a name="insights-temp-failure"></a>

서비스에 일시적인 장애가 발생하여 재시도를 시도할 것임을 나타냅니다. 아무 조치도 필요하지 않습니다.

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsTemporaryFailure",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string"
    }
}
```

### Amazon Chime SDK 미디어 인사이트 영구 실패
<a name="insights-perm-failure"></a>

사용자의 조치가 필요한 장애를 나타냅니다. `failureReason`을 사용하여 문제를 해결하세요. 일반적인 장애에는 다음이 포함될 수 있습니다.
+ 리소스 액세스 역할에 대한 권한이 부족함
+ 누락되거나 삭제된 리소스
+ 분석을 호출하는 AWS 서비스에서 제한하면 Amazon Transcribe 또는 Amazon Kinesis와 같이 사용자를 대신하여가 호출합니다.
+ KVS 스트림의 미디어 형식이 호환되지 않습니다.

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": {
        "version": "0",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsPermanentFailure",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string"              
    }
}
```

**참고**  
`failureReason` 필드는 선택 사항입니다. 예를 들어, 일반적인 이유는 `Access denied when assuming resource access role`일 수 있습니다.

다음 이벤트 유형은 Amazon Chime SDK 음성 커넥터에 의해 시작된 통화 분석 세션에 대해 미디어 인사이트 파이프라인이 만들어지거나 만들어지려는 시도가 실패할 때마다 나타날 수 있습니다. 각 섹션을 펼쳐 자세히 알아보세요.

### Amazon Chime SDK 미디어 인사이트 생성됨
<a name="vc-pipeline-created"></a>

이 예제는 일반적인 성공 이벤트를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": 
    {
        "version": "0",
        "mediaInsightsPipelineConfigurationArn": "string",
        "mediaInsightsPipelineArn": "string",
        "eventType": "chime:MediaInsightsCreated",
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
    }
}
```

### Amazon Chime SDK 미디어 인사이트 생성 실패
<a name="vc-pipeline-failed"></a>

이 예시는 일반적인 장애 이벤트를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights State Change",     
    "source": "aws.chime", 
    "account": number,
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "resources": [] 
    "detail": 
    {
        "version": "0",
        "mediaInsightsPipelineConfigurationArn": "string",
        "eventType": "chime:MediaInsightsCreateFailed", 
        "callId": "string",
        "transactionId": "string",
        "fromNumber": "string",
        "toNumber": "string",
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureOrigin": "Voice Connector",
        "httpStatusCode": "string",
        "failureReason": "string"
    }
}
```

미디어 인사이트 파이프라인에 여러 요소가 포함된 경우 다음과 같은 이벤트 유형이 나타날 수 있습니다. 예제 알림은 다음과 `S3RecordingSink`와 결합된 `AmazonTranscribeProcessor`에 대한 것입니다. 각 섹션을 펼쳐 자세히 알아보세요.

### AmazonTranscribeProcessor가 진행 중이며 S3RecordingSink가 시작되지 않음
<a name="processor-running-sink-not-started"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "InProgress",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor가 성공했고 S3RecordingSink가 진행 중임
<a name="processor-success-sink-in-progress"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "InProgress",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor에 장애가 발생했고 S3RecordingSink가 진행 중임
<a name="processor-fail-sink-in-process"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsInProgress",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Failed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "InProgress",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor에 장애가 발생했고 S3RecordingSink가 성공함
<a name="processor-fail-record-finish"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPermanentFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Failed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Stopped",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string" 
    } 
}
```

### AmazonTranscribeProcessor가 성공했고 S3RecordingSink에 장애가 발생함
<a name="processor-success-recording-fail"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPermanentFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Failed",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string",
        "failureReason": "string" 
    } 
}
```

### AmazonTranscribeProcessor가 일시 중지되고S3RecordingSink가 시작되지 않음
<a name="processor-pause-recording-no-start"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsPaused",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Paused",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor가 일시적으로 실패하고S3RecordingSink가 시작되지 않았음
<a name="processor-temp-fail-recording-no-start"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsTemporaryFailure",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "TemporarilyFailed",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "NotStarted",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### AmazonTranscribeProcessor와 S3RecordingSink가 성공함
<a name="processor-sink-success"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
    "version": "0", 
    "id": "string",
    "detail-type": "Media Insights State Change", 
    "source": "aws.chime", 
    "account": number, 
    "region": "string",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail": {
        "version": "0", 
        "mediaInsightsPipelineArn": "string", 
        "eventType": "chime:MediaInsightsStopped",
        "mediaInsightsPipelineElementStatuses": [
            { 
                "type": "AmazonTranscribeProcessor", 
                "status": "Stopped",
                "updatedOn": 1686184070655             
            },
            { 
                "type": "S3RecordingSink", 
                "status": "Stopped",
                "updatedOn": 1686184070655 
            }
        ] 
        "callId": "string", 
        "transactionId": "string", 
        "fromNumber": "string", 
        "toNumber": "string", 
        "voiceConnectorId": "string", 
        "direction": "string" 
    } 
}
```

### S3RecordingSink가 성공하고 VoiceEnhancement 진행 중
<a name="voice-enhancement-sink-inprogress"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsInProgress",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancementSink",
        "status": "InProgress",
        "updatedOn": 1686184070655
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

### 30분이 넘는 통화로 인해 S3RecordingSink는 성공하고 VoiceEnhancement는 실패함
<a name="voice-enhancement-sink-fail-longerthan30minutes"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsStopped",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancement",
        "status": "NotSupported",
        "updatedOn": 1686184070655,
        "statusDetail": "Unsupported recording length"
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

### 30분 미만의 통화로 인해 S3RecordingSink는 성공했지만 VoiceEnhancement는 실패함
<a name="voice-enhancement-sink-fail-lessthan30minutes"></a>

이 예제는 일반적인 이벤트 구조를 보여줍니다.

```
{
  "version": "0",
  "id": "string",
  "detail-type": "Media Insights State Change",
  "source": "aws.chime",
  "account": number,
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "string",
  "detail": {
    "mediaInsightsPipelineArn": "string",
    "eventType": "chime:MediaInsightsPermanentFailure",
    "version": "0",
    "mediaInsightsPipelineElementStatuses": [
      {
        "type": "VoiceEnhancement",
        "status": "Failed",
        "updatedOn": 1686184070655
      },
      {
        "type": "S3RecordingSink",
        "status": "Stopped",
        "updatedOn": 1686184070655
      }
    ]
  }
}
```

## 실시간 경고
<a name="realtime-alerts"></a>

**참고**  
Amazon Transcribe 및 Amazon Transcribe Call Analytics 프로세서만 실시간 알림을 지원합니다.

 Amazon Chime SDK 통화 분석을 사용하면 개발자가 분석 세션 중에 프로세서를 통해 실시간 알림을 보내는 규칙을 설정할 수 있습니다. 알림은 세부 정보 유형 `Media Insights Rules Matched`와 함께 Amazon EventBridge로 전송됩니다. EventBridge는 Lambda, Amazon SQS, Amazon SNS와 같은 다운스트림 서비스와의 통합을 지원하여 최종 사용자를 위한 알림을 트리거하거나 다른 사용자 지정 비즈니스 로직을 시작합니다.

 실시간 알림은 `MediaInsightsPipelineConfiguration`에 대한 `RealTimeAlertConfiguration` 필드의 일부로 설정됩니다. Amazon Chime SDK 콘솔을 사용하여 필드를 구성하거나 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_CreateMediaInsightsPipelineConfiguration.html) 또는 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_media-pipelines-chime_UpdateMediaInsightsPipelineConfiguration.html) API를 직접 호출할 수 있습니다.

 이 예제는 API를 통해 실시간 알림 구성을 생성하거나 업데이트하는 방법을 보여줍니다.

```
{
    "MediaInsightsPipelineConfigurationName": "config_name",
    "ResourceAccessRoleArn": "arn:aws:iam::account_id:role/role_name",
    "RealTimeAlertConfiguration": {
        "Disabled": false,
        "Rules": [{
                "Type": "KeywordMatch",
                "KeywordMatchConfiguration": {
                    "RuleName": "rule_name_1",
                    "Keywords": [
                        "hello",
                        "thank you"
                    ],
                    "Negate": false
                }
            },
            {
                "Type": "Sentiment",
                "RuleName": "rule_name_2",
                "SentimentType": "NEGATIVE",
                "TimePeriod": 60
            },
            {
                "Type": "IssueDetection",
                "RuleName": "rule_name_3"
            }
        ]
    },
    "Elements": [{
            "Type": "AmazonTranscribeCallAnalyticsProcessor",
            "AmazonTranscribeCallAnalyticsProcessorConfiguration": {
                "LanguageCode": "en-US"
            }
        },
        {
            "Type": "KinesisDataStreamSink",
            "KinesisDataStreamSinkConfiguration": {
                "InsightsTarget": "arn:aws:kinesis:us-east-1:account_id:stream/stream_name"
            }
        }
    ]
}
```

실시간 알림 구성의 각 규칙은 독립적으로 트리거됩니다. 여러 규칙 조건이 동시에 충족되는 경우 EventBridge 알림을 여러 개 받을 수 있습니다. 알림에 대한 규칙 목록을 만들려면 다음 규칙 유형 중에서 선택할 수 있습니다.

키워드 일치  
발화 또는 트랜스크립트 이벤트에서 지정된 키워드 또는 구문 세트가 일치하면 알림을 보냅니다. 다음과 같은 경우 이벤트가 발생하도록 알림을 구성할 수 있습니다.  
+ 지정된 키워드가 모두 음성으로 전달되며, `Negate`는 `false`로 설정됩니다.
+ `Negate`가 `true`로 설정된 경우 지정된 모든 키워드는 통화 전체에 걸쳐 음성으로 전달되지 않은 것으로 처리됩니다.
Amazon Transcribe 및 Amazon Transcribe 애널리틱스는 이 규칙 유형을 지원합니다.

감정 분석  
특정 감정 유형이 일정 기간 동안 지속되면 알림을 보냅니다. Transcribe Call Analytics만 이 규칙을 지원합니다.

문제 감지  
발화 이벤트에서 문제가 감지되면 경보를 보냅니다. Transcribe Call Analytics만 이 규칙 유형을 지원합니다.

다음 예제는 `KeywordMatch` 규칙에 대한 실시간 알림 이벤트를 보여줍니다.

```
{
    "version": "0",
    "id": "string",
    "detail-type": "Media Insights Rules Matched", 
    "source": "aws.chime", 
    "account": number,
    "region": "us-east-1",
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": [],
    "detail":   {
        "version": "0",
        "sourceMetadata": {}
        "ruleName": "string"
        "utteranceId": "string",
        "beginTimestamp": "yyyy-mm-ddThh:mm:ssZ",
    }
}
```

일부 EventBridge 필드는 일치하는 규칙 유형에 고유해야 합니다.

**키워드 매칭 필드**  
`utteranceId`: Amazon Transcribe Call Analytics를 사용하는 경우 일치하는 키워드가 포함된 트랜스크립트의 ID입니다. 발화된 키워드 매칭에만 해당됩니다.  
`resultId`: Amazon Transcribe를 사용하는 경우 일치하는 키워드가 포함된 트랜스크립트의 ID입니다. 발화된 키워드 매칭에만 해당됩니다.  
`beginTimestamp`: 일치하는 키워드가 포함된 트랜스크립트의 시작 시간입니다. 발화된 키워드 매칭에만 해당됩니다.

**감정 분석 필드**  
`beginTimestamp`: 일치하는 감정의 롤링 윈도우 시작 시간입니다.  
`endTimestamp`: 일치하는 감정의 롤링 윈도우 종료 시간입니다.