Amazon EventBridge 알림 사용 - Amazon Chime SDK

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

Amazon EventBridge 알림 사용

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

상태 업데이트

미디어 인사이트 파이프라인은 통화 분석 세션이 진행되고 성공적으로 종료되거나 오류가 발생하면 EventBridge 알림을 보냅니다. 다음과 같은 경우 “Media Insights 상태 변경” 세부 정보가 포함된 EventBridge 알림을 받게 됩니다.

  • 미디어 파이프라인의 상태가 바뀝니다.

  • 미디어 파이프라인 요소의 상태가 바뀝니다.

  • 파이프라인 요소가 중지됩니다.

  • 파이프라인 요소가 실패합니다.

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

  • version

  • mediaInsightsPipelineArn

  • eventType

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

  • NotStarted

  • InProgress

  • Stopped

  • Failed

세부 정보 섹션에는 MediaInsightsRuntimeMetadata CreateMediaInsightsPipeline API 호출. 음성 커넥터로 통화 분석 세션을 시작한 경우 메타데이터 섹션은 다음 파라미터로 자동으로 채워집니다.

  • transactionId

  • fromNumber

  • toNumber

  • callId

  • voiceConnectorId

  • direction

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

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

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

{ "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" } }

사용자의 조치가 필요한 장애를 나타냅니다. 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 Voice Connector에서 시작된 통화 분석 세션에 대해 미디어 인사이트 파이프라인이 생성되거나 생성 시도가 실패할 때마다 다음 이벤트 유형이 나타날 수 있습니다. 각 섹션을 펼쳐 자세히 알아보세요.

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

{ "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", } }

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

{ "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에 대한 것입니다. 각 섹션을 펼쳐 자세히 알아보세요.

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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" } }

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

{ "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 } ] } }

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

{ "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 } ] } }

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

{ "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 } ] } }

실시간 경고

참고

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

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

실시간 알림은 MediaInsightsPipelineConfiguration에 대한 RealTimeAlertConfiguration 필드의 일부로 설정됩니다. Amazon Chime SDK 콘솔을 사용하여 필드를 구성하거나 CreateMediaInsightsPipelineConfiguration 또는 UpdateMediaInsightsPipelineConfiguration APIs.

이 예제에서는 를 통해 실시간 알림 구성을 생성하거나 업데이트하는 방법을 보여줍니다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 알림을 받을 수 있습니다. 알림에 대한 규칙 목록을 만들려면 다음 규칙 유형 중에서 선택할 수 있습니다.

키워드 일치

발화 또는 트랜스크립트 이벤트에서 지정된 키워드 또는 구문 세트가 일치하면 알림을 보냅니다. 다음과 같은 경우 이벤트가 발생하도록 알림을 구성할 수 있습니다.

  • 지정된 키워드가 모두 음성으로 전달되며, Negatefalse로 설정됩니다.

  • Negatetrue로 설정된 경우 지정된 모든 키워드는 통화 전체에 걸쳐 음성으로 전달되지 않은 것으로 처리됩니다.

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: 일치하는 감정의 롤링 윈도우 종료 시간입니다.