Amazon Connect でリアルタイムチャットメッセージストリーミングを有効にする - Amazon Connect

Amazon Connect でリアルタイムチャットメッセージストリーミングを有効にする

Amazon Connect Chat は API を提供します。ユーザーはこの API でチャットメッセージのリアルタイムストリームをサブスクライブすることができます。これらの API を使用すると、次のことができます。

  • API を使用して、新しいチャットの問い合わせが作成されたときに、リアルタイムでメッセージをストリーミングする。

  • 現在の Amazon Connect Chat 機能を拡張して、SMS ソリューションおよびサードパーティーのメッセージングアプリケーションとの統合を構築する、モバイルプッシュ通知を有効にし、チャットメッセージのアクティビティを監視および追跡するための分析ダッシュボードを作成するなどのユースケースをサポートする。

メッセージストリーミング API の仕組み

Amazon Connect メッセージストリーミング API は、Amazon Connect Chat の問い合わせで特定のイベントが発生したときにトリガーされます。例えば、顧客が新しいチャットメッセージを送信すると、イベントは送信したばかりのメッセージに関するデータを含む指定されたエンドポイントにペイロードを送信します。メッセージは、特定のエンドポイントに対し、Amazon Simple Notification Service (Amazon SNS) 使用して公開されます。

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

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

  2. StartChatContact API を呼び出し、チャットの問い合わせを開始します。

  3. StartContactStreaming API を呼び出し、メッセージストリーミングを開始します。

  4. CreateParticipantConnection API を呼び出し、参加者の接続を作成します。

ステップ 1: スタンダード SNS トピックを作成する

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

  2. AWS アカウントで SNS トピックを作成します[Details] (詳細) セクションで [Type] (タイプ) に[Standard] (スタンダード) を選択し、トピックの名前を入力して、続いて、[Create topic] (トピックを作成) を選択します。

    注記

    現在、メッセージストリーミング API は、メッセージのリアルタイムストリーミングのためのスタンダード SNS のみをサポートしています。Amazon SNS FIFO (First-In-First-Out) トピックはサポートされていません。

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

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

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

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"connect.amazonaws.com" }, "Action":"sns:Publish", "Resource":"YOUR_SNS_TOPIC_ARN", "Condition":{ "StringEquals":{ "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN" } } } ] }
    注記

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

    "Condition": { "StringEquals": { "AWS:SourceOwner": "921772911154" } }

    これを削除して、SourceAccount に置き換えてください。例:

    "Condition":{ "StringEquals":{ "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN" } }

    これにより、サービス間の混乱した代理問題を回避できます。

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

    { "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your_accountId:root", "Service": "connect.amazonaws.com" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your_accountId: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: チャット問い合わせを開始する

  1. Amazon Connect StartChatContact API を呼び出し、チャットの問い合わせを開始します。

    Amazon Connect API を呼び出すための SDK クライアントを作成する方法の詳細については、以下のトピックを参照してください。

  2. StartChatContact 応答からの ContactIdParticipantToken を追跡します。これらの応答属性は、ストリーミングを有効にするために必要な他のチャット API を呼び出すために使用されるためです。これについては、次の手順で説明されます。

ステップ 3: 問い合わせのメッセージストリーミングを有効にする

  • StartContactStreaming を呼び出し、SNS トピックへのリアルタイムメッセージのストリーミングを有効にします。

    • 制限: 問い合わせごとに最大 2 つの SNS トピックをサブスクライブできます。

    • StartContactStreaming を呼び出すと、SNS トピックの Amazon リソースネーム (ARN) を指定する必要があります (ステップ 1: スタンダード SNS トピックを作成する を参照)。

      単一の SNS トピック ARN を複数の AWS アカウントで使用できます。ただし、Amazon Connect インスタンスと同じリージョンに存在する必要があります。例えば、トピックの ARN が us-east-1 の場合は、Amazon Connect インスタンスは us-east-1 に存在する必要があります。

    • ストリーミングエンドポイントで受信されない最初のチャットメッセージについては、GetTranscript API を呼び出して最初のメッセージを受信できます。

ステップ 4: 参加者の接続を作成する

次のステップ

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

  1. 正常に動作することを確認するには、作成した SNS トピックにメッセージが公開されていることを確認します。この検証は、Amazon CloudWatch メトリクスを使用して実行できます。手順については、CloudWatch を使用した Amazon SNS のモニタリングを参照してください。

  2. SNS の保持期限に制限がある場合は、Amazon Simple Queue Service (Amazon SQS) Amazon Kinesis、またはメッセージを保持するための別のサービスをセットアップすることをお勧めします。

  3. StopContactStreaming の使用はオプションであり、問い合わせフローでチャットが切断されている場合、お客様がチャットを切断した場合には不要です。ただし、StopContactStreaming は、チャットがアクティブで進行中であっても、SNS トピックでのメッセージのストリーミングを停止するオプションを提供します。