

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

# Amazon Connect에서 메시지 스트리밍을 활성화한 후 Amazon SNS 페이로드 사용 Amazon Connect
<a name="sns-payload"></a>

메시지 스트리밍을 성공적으로 활성화한 후에는 에이전트, 고객 또는 전체 참가자에게 메시지를 보내도록 메시지를 필터링해야 할 수도 있습니다.

참가자별로 필터링하려면 특정 SNS 헤더 속성(`MessageVisibility`)을 읽고 메시지가 고객 전용인지, 에이전트 전용인지, 아니면 모두를 대상으로 하는지 확인합니다.
+ 고객에게만 전송하는 경우: 고객을 대상으로 하는 모든 코드에 대해 클라이언트는 고객을 대상으로 하는 메시지를 필터링하고 고객에게 메시지를 전달하기 위해 다음과 같은 로직을 구축해야 합니다.

  ```
  if ( ( MessageVisibility == CUSTOMER || MessageVisibility == ALL)  && ParticipantRole != CUSTOMER )
  ```
+ 에이전트에게만 전송하는 경우:

  ```
  if ( ( MessageVisibility == AGENT || MessageVisibility == ALL)  && ParticipantRole != AGENT )
  ```

사용자 지정 [구독 필터링 정책](https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html)을 구축하여 Amazon SNS의 필터링 기능을 활용할 수도 있습니다. 이렇게 하면 메시지 필터링 로직이 SNS 주제 구독자에서 SNS 서비스 자체로 오프로드됩니다.

## 페이로드의 메시지 속성
<a name="sns-message-attributes"></a>

다음은 Amazon SNS 페이로드의 각 메시지 속성에 대한 설명입니다.
+ `InitialContactId`: 채팅의 초기 고객 응대 ID입니다.
+ `ContactId`: 채팅의 현재 고객 응대 ID입니다. 채팅에 새 에이전트가 들어왔거나 대기열에 대기 중인 고객 응대 흐름이 있는 경우에는 `InitialContactId`와 `ContactId`가 다를 수 있습니다.
+ `ParticipantRole`: 메시지를 보낸 참가자입니다.
+ `InstanceId`: Amazon Connect 인스턴스 ID입니다.
+ `AccountId`: AWS 계정 ID입니다.
+ `Type`: 가능한 값: `EVENT`, `MESSAGE`.
+ `ContentType`: 가능한 값: `application/vnd.amazonaws.connect.event.typing`, `application/vnd.amazonaws.connect.event.participant.joined`, `application/vnd.amazonaws.connect.event.participant.left`, `application/vnd.amazonaws.connect.event.transfer.succeeded`, `application/vnd.amazonaws.connect.event.transfer.failed`, `application/vnd.amazonaws.connect.message.interactive`, `application/vnd.amazonaws.connect.event.chat.ended` 등입니다.
+ `MessageVisibility`: 가능한 값: `AGENT`, `CUSTOMER`, `ALL`.

## SNS 페이로드의 예:
<a name="sns-message-payload"></a>

```
{
  "Type" : "Notification",
  "MessageId" : "ccccccccc-cccc-cccc-cccc-ccccccccccccc",
  "TopicArn" : "arn:aws:sns:us-west-2:009969138378:connector-svc-test",
  "Message" :  "{\"AbsoluteTime\":\"2021-09-08T13:28:24.656Z\",\"Content\":\"help\",\"ContentType\":\"text/plain\",\"Id\":\"333333333-be0d-4a44-889d-d2a86fc06f0c\",\"Type\":\"MESSAGE\",\"ParticipantId\":\"bbbbbbbb-c562-4d95-b76c-dcbca8b4b5f7\",\"DisplayName\":\"Jane\",\"ParticipantRole\":\"CUSTOMER\",\"InitialContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\",\"ContactId\":\"33333333-abc5-46db-9ad5-d772559ab556\"}",
  "Timestamp" : "2021-09-08T13:28:24.860Z",
  "SignatureVersion" : "1",
  "Signature" : "examplegggggg/1tEBYdiVDgJgBoJUniUFcArLFGfg5JCvpOr/v6LPCHiD7A0BWy8+ZOnGTmOjBMn80U9jSzYhKbHDbQHaNYTo9sRyQA31JtHHiIseQeMfTDpcaAXqfs8hdIXq4XZaJYqDFqosfbvh56VPh5QgmeHTltTc7eOZBUwnt/177eOTLTt2yB0ItMV3NAYuE1Tdxya1lLYZQUIMxETTVcRAZkDIu8TbRZC9a00q2RQVjXhDaU3k+tL+kk85syW/2ryjjkDYoUb+dyRGkqMy4aKA22UpfidOtdAZ/GGtXaXSKBqazZTEUuSEzt0duLtFntQiYJanU05gtDig==",
  "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-11111111111111111111111111111111.pem",
  "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:000000000000:connector-svc-test:22222222-aaaa-bbbb-cccc-333333333333",
  "MessageAttributes" : {
    "InitialContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"},
    "MessageVisibility" : {"Type":"String","Value":"ALL"},
    "Type" : {"Type":"String","Value":"MESSAGE"},
    "AccountId" : {"Type":"String","Value":"999999999999"},
    "ContentType" : {"Type":"String","Value":"text/plain"},
    "InstanceId" : {"Type":"String","Value":"dddddddd-b64e-40c5-921b-109fd92499ae"},
    "ContactId" : {"Type":"String","Value":"33333333-abc5-46db-9ad5-d772559ab556"},
    "ParticipantRole" : {"Type":"String","Value":"CUSTOMER"}
  }
}
```