

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Connect でリアルタイムチャットメッセージストリーミングを有効にする
<a name="chat-message-streaming"></a>

Amazon Connect Chat は [API](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) を提供します。ユーザーはこの API でチャットメッセージのリアルタイムストリームをサブスクライブすることができます。これらの API を使用すると、次のことができます。
+ API を使用して、新しいチャットの問い合わせが作成されたときに、リアルタイムでメッセージをストリーミングする。
+ 現在の Amazon Connect Chat 機能を拡張して、SMS ソリューションおよびサードパーティーのメッセージングアプリケーションとの統合を構築する、モバイルプッシュ通知を有効にし、チャットメッセージのアクティビティを監視および追跡するための分析ダッシュボードを作成するなどのユースケースをサポートする。

**注記**  
このページでは、Amazon Connect でチャットメッセージをリアルタイムでストリーミングするために SNS エンドポイントをサブスクライブする方法について説明します。Amazon Connect で会話 AI インタラクションのメッセージストリーミングを有効にする場合は、「」を参照してください[AI を活用したチャットのメッセージストリーミングを有効にする](message-streaming-ai-chat.md)。

## メッセージストリーミング API の仕組み
<a name="how-chat-message-streaming-apis-work"></a>

[Amazon Connect メッセージストリーミング API](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) は、Amazon Connect Chat の問い合わせで特定のイベントが発生したときにトリガーされます。例えば、顧客が新しいチャットメッセージを送信すると、イベントは送信したばかりのメッセージに関するデータを含む指定されたエンドポイントに[ペイロード](sns-payload.md)を送信します。メッセージは、特定のエンドポイントに対し、[Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) (Amazon SNS) 使用して公開されます。

このトピックでは、Amazon Connect および Amazon SNS を使用してリアルタイムメッセージストリーミングをセットアップする方法について説明します。手順は次のとおりです。

1. Amazon SNS コンソールを使用して、新しいスタンダード SNS トピックを作成し、メッセージをセットアップします。

1. [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API を呼び出し、チャットの問い合わせを開始します。

1. [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html) API を呼び出し、メッセージストリーミングを開始します。

1. [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) API を呼び出し、参加者の接続を作成します。

## ステップ 1: スタンダード SNS トピックを作成する
<a name="step1-chat-streaming"></a>

1. Amazon SNS コンソールに移動します。

1.  AWS アカウントに [SNS トピックを作成します](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。**[Details]** (詳細) セクションで **[Type]** (タイプ) に**[Standard]** (スタンダード) を選択し、トピックの名前を入力して、続いて、**[Create topic]** (トピックを作成) を選択します。
**注記**  
現在、メッセージストリーミング API は、メッセージのリアルタイムストリーミングのためのスタンダード SNS のみをサポートしています。[Amazon SNS FIFO (First-In-First-Out) トピック](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html)はサポートされていません。

1. トピックを作成すると、その Amazon リソースネーム (ARN) が、**[Details]** (詳細) セクションに追加されます。トピック ARN をクリップボードにコピーします。トピック ARN は次のステップと[ステップ 3: 問い合わせのメッセージストリーミングを有効にする](#step3-chat-streaming)で使用します。

   トピック ARN は以下の例のようになります。

   ```
   arn:aws:sns:us-east-1:123456789012:MyTopic                                
   ```

1. **[Access policy]** (アクセスポリシー) タブで、**[Edit]** (編集) をクリックし、SNS トピックにリソースベースのポリシーを追加して、Amazon Connect がそれを公開するための許可を持てるようにします。JSON エディタにコピーして貼り付け、独自の値を使用してカスタマイズできるサンプルの SNS ポリシーを次に示します。

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"connect.amazonaws.com"
            },
            "Action":"sns:Publish",
            "Resource":"arn:aws:sns:us-east-1:111122223333:TopicName",
            "Condition":{
               "StringEquals":{
                   "aws:SourceAccount":"111122223333"
               },
               "ArnEquals":{
               "aws:SourceArn":"arn:aws:connect:us-east-1:111122223333:instance/InstanceId"
               }
            }
         }
      ]
   }
   ```

------
**注記**  
デフォルトの**アクセスポリシー**には、次に示す `sourceOwner` などに適用される条件が付属しています。  

   ```
   "Condition": {
           "StringEquals": {
             "AWS:SourceOwner": "921772911154"
           }
         }
   ```
これを削除して、`SourceAccount` に置き換えてください。例:  

   ```
   "Condition":{
               "StringEquals":{
                  "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID"
               },
               "ArnEquals":{
                  "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN"
               }
            }
   ```
これにより、[サービス間の混乱した代理](cross-service-confused-deputy-prevention.md)問題を回避できます。

1. SNS でサーバー側の暗号化を使用している場合は、`connect.amazonaws.com` の許可が KMS keyで有効になっていることを確認してください。次に、サンプルポリシーを示します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-consolepolicy-3",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## ステップ 2: チャット問い合わせを開始する
<a name="step2-chat-streaming"></a>

1. Amazon Connect [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API を呼び出し、チャットの問い合わせを開始します。

   Amazon Connect API を呼び出すための SDK クライアントを作成する方法の詳細については、以下のトピックを参照してください。
   + [クラス AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html) 
   + [サービスクライアントの作成](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html) 

1. [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) 応答からの `ContactId` と `ParticipantToken` を追跡します。これらの応答属性は、ストリーミングを有効にするために必要な他のチャット API を呼び出すために使用されるためです。これについては、次の手順で説明されます。

## ステップ 3: 問い合わせのメッセージストリーミングを有効にする
<a name="step3-chat-streaming"></a>
+ [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html) を呼び出し、SNS トピックへのリアルタイムメッセージのストリーミングを有効にします。
  + **制限**: 問い合わせごとに最大 2 つの SNS トピックをサブスクライブできます。
  + [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html) を呼び出すと、SNS トピックの Amazon リソースネーム (ARN) を指定する必要があります ([ステップ 1: スタンダード SNS トピックを作成する](#step1-chat-streaming) を参照)。

    1 つの SNS トピック ARN を複数の で使用できますが AWS アカウント、Amazon Connect インスタンスと同じリージョンに存在する必要があります。例えば、トピックの ARN が **us-east-1** の場合は、Amazon Connect インスタンスは **us-east-1** に存在する必要があります。
  + ストリーミングエンドポイントで受信されない最初のチャットメッセージについては、[GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html) API を呼び出して最初のメッセージを受信できます。

## ステップ 4: 参加者の接続を作成する
<a name="step4-chat-streaming"></a>
+ [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) と true として渡された `ConnectParticipant` 属性を呼び出します。
  + チャットの作成から 5 分以内に [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) を呼び出す必要があります。
  + [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) を true に設定された `ConnectParticipant` と呼び出すことは、[ステップ 2: チャット問い合わせを開始する](#step2-chat-streaming) でストリーミングを有効にし、発信者参加者が`Customer`である場合にのみ機能します。
  + このステップ (参加者接続の作成) は、`WEBSOCKET` を使用してチャット問い合わせに正常に接続している場合は、オプションです。

## 次の手順
<a name="nextsteps-chat-streaming"></a>

メッセージストリーミング API を操作するための設定はすべて完了です。

1. 正常に動作することを確認するには、作成した SNS トピックにメッセージが公開されていることを確認します。この検証は、Amazon CloudWatch メトリクスを使用して実行できます。手順については、[CloudWatch を使用した Amazon SNS のモニタリング](https://docs.aws.amazon.com/sns/latest/dg/sns-monitoring-using-cloudwatch.html)を参照してください。

1. SNS の[保持期限に制限がある](https://aws.amazon.com/blogs//aws/sns-ttl-control/)場合は、[Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/) [Amazon Kinesis](https://aws.amazon.com/kinesis/)、またはメッセージを保持するための別のサービスをセットアップすることをお勧めします。

1. [StopContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactStreaming.html) の使用はオプションであり、問い合わせフローでチャットが[切断されている](disconnect-hang-up.md)場合、お客様がチャットを切断した場合には不要です。ただし、`StopContactStreaming` は、チャットがアクティブで進行中であっても、SNS トピックでのメッセージのストリーミングを停止するオプションを提供します。