

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

# Amazon EventBridge 이벤트를 사용하여 화면 레코딩 상태 추적
<a name="track-screen-recording-status"></a>

Amazon EventBridge를 사용하면 [에이전트 화면 레코딩](agent-screen-recording.md)의 상태를 거의 실시간으로 볼 수 있습니다. 각 에이전트 화면 레코딩의 이벤트에는 성공/실패 상태, 설명이 포함된 실패 코드, 레코딩 위치, 레코딩 크기, 설치된 클라이언트 버전, 화면 레코딩 시작 및 종료 시간이 포함됩니다.

다른 AWS 서비스와 통합하여 에이전트 화면 레코딩에 대한 분석 또는 모니터링 인사이트를 얻을 수 있습니다.
+ [Amazon CloudWatch Log Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)를 사용한 쿼리
+ [Amazon Quick](https://aws.amazon.com/quicksight/) 대시보드에서 거의 실시간에 가까운 알림 받기
+ Amazon Connect 외부에서 집계된 보고서 생성
+ Amazon EventBridge를 사용하여 다른 사용자 지정 데이터 파이프라인 솔루션 연결

**Topics**
+ [Amazon EventBridge 이벤트 페이로드 형식](#eventbridge-payload-formats)
+ [Amazon EventBridge 이벤트와 일치하는 규칙 생성](#create-eventbridge-rule)
+ [생성된 Amazon EventBridge 규칙의 대상 구성](#configure-eventbridge-target)

## Amazon EventBridge 이벤트 페이로드 형식
<a name="eventbridge-payload-formats"></a>

### 화면 레코딩 상태의 이벤트 - INITIATED
<a name="event-initiated"></a>

이 이벤트는 에이전트가 고객 응대를 수락할 때 발생하며, 에이전트 화면 레코딩이 활성화된 모든 고객 응대에 대해 녹음이 시작되기 전일 수 있습니다.

```
{  
  "version": "0",  
  "id": "the_event_id_from_eventbridge",  
  "detail-type": "Screen Recording Status Changed",  
  "source": "aws.connect",  
  "account": "your_aws_account_id",  
  "time": "2026-01-01T00:00:00Z",  
  "region": "us-west-2",  
  "resources": [  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/your_contact_id",  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id"  
  ],  
  "detail": {  
    "version": "1.0",  
    "recordingStatus": "INITIATED",  
    "eventDeduplicationId": "unique_uuid",  
    "instanceArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id",  
    "contactArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/your_contact_id",  
    "agentArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/agent/your_agent_id",  
    "clientInfo": {  
      "appVersion": "2.0.3.0",  
    }  
  }  
}
```

### 화면 레코딩 상태의 이벤트 - 완료됨
<a name="event-completed"></a>

이 이벤트는 에이전트 데스크톱에서 화면 레코딩이 종료될 때 발생합니다. 이는 화면 녹화가 Amazon S3 버킷에 성공적으로 업로드되었음을 의미하지 않습니다.

```
{  
  "version": "0",  
  "id": "the_event_id_from_eventbridge",  
  "detail-type": "Screen Recording Status Changed",  
  "source": "aws.connect",  
  "account": "your_aws_account_id",  
  "time": "2026-01-01T00:00:00Z",  
  "region": "us-west-2",  
  "resources": [  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/your_contact_id",  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id"  
  ],  
  "detail": {  
    "version": "1.0",  
    "recordingStatus": "COMPLETED",  
    "eventDeduplicationId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeee",  
    "instanceArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id",  
    "contactArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/your_contact_id",  
    "agentArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/agent/your_agent_id",  
    "clientInfo": {  
      "appVersion": "2.0.3.0",  
    },  
    "recordingInfo": {  
      "startTime": "2026-01-01T00:00:00.000Z",  
      "endTime": "2026-01-01T00:00:00.000Z",  
    }  
  }  
}
```

### 화면 레코딩 상태의 이벤트 - 게시됨
<a name="event-published"></a>

이 이벤트는 화면 레코딩이 Amazon S3 버킷에 성공적으로 업로드될 때 발생합니다. 세부 정보에는 Amazon S3 버킷 위치, 레코딩 크기 및 레코딩 기간이 포함됩니다.

```
{  
  "version": "0",  
  "id": "the_event_id_from_eventbridge",  
  "detail-type": "Screen Recording Status Changed",  
  "source": "aws.connect",  
  "account": "your_aws_account_id",  
  "time": "2026-01-01T00:00:00Z",  
  "region": "us-west-2",  
  "resources": [  
    "contactArn",  
    "instanceArn"  
  ],  
  "detail": {  
    "version": "1.0",  
    "recordingStatus": "PUBLISHED",  
    "eventDeduplicationId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeee",  
    "instanceArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id",  
    "contactArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/your_contact_id",  
    "agentArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/agent/your_agent_id",  
    "clientInfo": {  
      "appVersion": "2.0.3.0",  
    },  
    "recordingInfo": {  
      "startTime": "2026-01-01T00:00:00.000Z",  
      "endTime": "2026-01-01T00:00:00.000Z",  
      "publishTime": "2026-01-01T00:00:00.000Z",  
      "location": "s3://your-bucket-name/object-prefix/object-key",  
      "durationInMillis": 100000,  
      "sizeInBytes": 1000000  
    }  
  }  
}
```

### 화면 레코딩 상태의 이벤트 - 실패
<a name="event-failed"></a>

화면 녹화에 실패하면이 이벤트가 발생합니다. 실패 정보에 대한 세부 정보는 감지할 수 있는 가능한 실패 이유를 추정하기 위한 최선의 노력으로 제공됩니다.

```
{  
  "version": "0",  
  "id": "the_event_id_from_eventbridge",  
  "detail-type": "Screen Recording Status Changed",  
  "source": "aws.connect",  
  "account": "your_aws_account_id",  
  "time": "2026-01-01T00:00:00Z",  
  "region": "us-west-2",  
  "resources": [  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/cccccccc-cccc-cccc-cccc-ccccccccccccc",  
    "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id"  
  ],  
  "detail": {  
    "version": "1.0",  
    "recordingStatus": "FAILED",  
    "eventDeduplicationId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeee",  
    "instanceArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id",  
    "contactArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/contact/cccccccc-cccc-cccc-cccc-ccccccccccccc",  
    "agentArn": "arn:aws:connect:us-west-2:your_aws_account_id:instance/your_instance_id/agent/your_agent_id",  
    "clientInfo": {  
      "appVersion": "2.0.3.0",  
    },  
    "failureInfo": {  
      "code": "UNKNOWN",  
      "message": "UNKNOWN",  
      "source": "Unknown failure"  
    },  
    "recordingInfo": {  
      "startTime": "2026-01-01T00:00:00.000Z"  
    }  
  }  
}
```

## Amazon EventBridge 이벤트와 일치하는 규칙 생성
<a name="create-eventbridge-rule"></a>

화면 레코딩 상태에 대한 Amazon EventBridge 이벤트를 구독하려면 정의된 이벤트 소스 및 이벤트 세부 정보 유형과 일치하는 Amazon EventBridge 규칙을 생성해야 합니다. 콘솔 AWS 또는 AWS CDK 라이브러리를 통해 이를 달성할 수 있습니다.

### AWS 콘솔을 사용하여 규칙 생성
<a name="create-rule-console"></a>

 AWS 콘솔에서 Amazon EventBridge → 버스 → 규칙에서 새 규칙을 생성합니다.

#### 기본 이벤트 버스 사용
<a name="use-default-event-bus"></a>

![\[기본 이벤트 버스 선택을 보여주는 규칙 생성 페이지입니다.\]](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/screen-recording-eventbridge-event-rule.png)


#### 템플릿 이벤트 패턴 사용
<a name="use-template-event-pattern"></a>

드롭다운 목록에서 정의된 이벤트 패턴을 선택합니다.

![\[aws.connect가 선택되었음을 보여주는 이벤트 소스 드롭다운입니다.\]](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/screen-recording-eventbridge-event-source.png)


![\[화면 레코딩 상태가 변경됨을 보여주는 이벤트 패턴이 선택되었습니다.\]](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/screen-recording-eventbridge-event-pattern.png)


이벤트 유형이 드롭다운 목록에 표시되지 않는 경우 다음과 함께 **사용자 지정 패턴(JSON 편집기)을 사용하여 동일한 패턴을** 생성할 수도 있습니다.

```
{  
  "source": [ "aws.connect" ],  
  "detailType": [ "Screen Recording Status Changed" ]  
}
```

### 를 사용하여 규칙 생성 AWS CDK
<a name="create-rule-cdk"></a>

또는를 사용하여 AWS 리소스를 관리하는 경우 AWS CDK다음은 Amazon EventBridge 규칙을 구성하는 샘플 TypeScript 코드 조각입니다.

```
import { Rule } from 'aws-cdk-lib/aws-events';  
  
const eventBridgeRule = new Rule(this, 'YourEventBridgeRuleLogicalName', {  
    ruleName: 'your-event-bridge-rule-name',  
    description: 'your rule description',  
    eventPattern: {  
        source: [ "aws.connect" ],  
        detailType: [ "Screen Recording Status Changed" ]  
    }  
});
```

## 생성된 Amazon EventBridge 규칙의 대상 구성
<a name="configure-eventbridge-target"></a>

Amazon EventBridge는 여러 AWS 서비스를 대상으로 지원합니다. 필요에 따라 다른 AWS 서비스를 사용하여 자체 이벤트 처리 파이프라인을 유연하게 구축할 수 있습니다. 각 규칙에 대해 최대 5개의 대상을 정의할 수 있습니다. 자세한 정보는 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 대상](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)을 참조하세요.

### Amazon CloudWatch 로그 그룹을 예제 대상으로 사용
<a name="cloudwatch-log-group-target"></a>

다음 예제에서는 [Amazon CloudWatch 로그 그룹을](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) 대상으로 사용합니다.

![\[CloudWatch 로그 그룹이 선택된 것을 보여주는 대상 구성입니다.\]](http://docs.aws.amazon.com/ko_kr/connect/latest/adminguide/images/screen-recording-eventbridge-target-cwl.png)


 AWS CDK 코드에서 리소스를 생성하고 Amazon EventBridge 규칙에 추가합니다.

```
import { LogGroup, RetentionDays } from "aws-cdk-lib/aws-logs";  
import { CloudWatchLogGroup } from 'aws-cdk-lib/aws-events-targets';  
   
const logGroup = new LogGroup(this, 'YourLogGroupLogicalName', {  
    logGroupName: '"/aws/events/your-log-group-name',  
    retention: RetentionDays.ONE_YEAR  
});  
  
eventBridgeRule.addTarget(new CloudWatchLogGroup((logGroup)));
```

#### Amazon CloudWatch Log Insights 쿼리 예제
<a name="cloudwatch-log-insights-queries"></a>

Amazon CloudWatch Insights 쿼리 언어를 사용하는 몇 가지 예제 쿼리는 다음과 같습니다.
+ **성공률에 대한 샘플 쿼리**

  ```
  fields @timestamp, @message, detail  
  | stats sum(detail.recordingStatus= "PUBLISHED") as Count_Success,   
    sum(detail.recordingStatus= "INITIATED") as Count_Total,   
    Count_Success / Count_Total as Success_Ratio
  ```
+ **각 레코딩 상태의 개수를 가져오는 샘플 쿼리**

  ```
  fields @timestamp, @message, detail  
  | stats count(*) as Count group by detail.recordingStatus as recordingStatus
  ```
+ **가장 일반적인 실패 코드가 있는 실패한 고객 응대에 대한 샘플 쿼리**

  ```
  fields @timestamp, @message, detail  
  | filter detail.recordingStatus = "FAILED"   
  | stats count(*) as Count group by detail.failureInfo.code as FailureCode  
  | sort by Count desc
  ```
+ **연락이 가장 많이 실패한 에이전트에 대한 샘플 쿼리**

  ```
  fields @timestamp, @message, detail  
  | filter detail.recordingStatus = "FAILED"   
  | stats count(*) as Count group by detail.agentArn as AgentArn  
  | sort by Count desc
  ```