Amazon Q in Connectのセルフサービスをチャットで利用する場合、Lexボットがコールドスタート時、高確率でエラーとなります
困っていること
Amazon Q in ConnectのセルフサービスをAmazon Connectチャットで利用する際、コンタクトフローの「顧客の入力を取得する」ブロックで、最初の質問時にエラーが発生します。
しかし、その後は何度質問しても3~4秒で正常に応答が返されます。
Amazon Connectのフローログを確認したところ、以下のような内部エラーが発生していました。
考えられる原因は何でしょうか。
{
"Results": "Error",
"ContactId": "6f0ead0c-d26d-494f-8ebb-95edabaaa20f",
"ContactFlowId": "arn:aws:connect:ap-northeast-1:111111111111:instance/3ff2093d-af96-43fd-b038-3c07cdd7609c/contact-flow/e9b7c449-5e1f-4a2c-b9af-9d1a4e143dd9",
"ContactFlowName": "cm-hirai-q-in-connect",
"ContactFlowModuleType": "GetUserInput",
"Identifier": "1e79e345-7b31-403f-80ea-9fc535d637ac",
"Timestamp": "2025-02-26T23:35:49.876Z",
"ErrorDetails": {
"ErrorCode": "InternalFailure",
"Message": "Internal service error occurred"
}
}
回答
Amazon Q in ConnectのセルフサービスをAmazon Connectチャットで利用する際、Amazon Lexボットがコールドスタート状態の場合、高確率でエラーが発生します。
Amazon Lexでは、AWS Lambdaのコールドスタートと同様に、一定期間(ドラフトバージョンでは1時間、番号付きバージョンでは24時間)リクエストがない場合、次の最初のリクエストに対する応答に時間がかかります。
Lexボットのコールドスタートに関する詳細は、以下の記事をご参照ください。
Amazon Connectのチャットでは、Lexボットからの応答が10秒以内に返される必要があります。10秒を超えると、今回のConnectフローログのようにエラーが発生します。
項目
チャット Amazon Lex ボット統合のタイムアウト
機能の仕様
10 秒
Amazon Lex ボットがチャットを利用する顧客のプロンプトに応答する必要がある最大時間数。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/feature-limits.html#feature-limits-chat
つまり、本事象の原因は、Lexボットのコールドスタートにより最初のリクエスト時に応答が10秒以内に返されずエラーが発生したことです。その後のリクエストでは、Lexボットがウォームアップされているため、10秒以内に応答が返され、エラーが発生しなかったと考えられます。
対策として、Amazon EventBridge Schedulerを利用して定期的にLexボットを実行し、コールドスタートを防ぐ方法が考えられます。
詳細は以下の記事をご参照ください。
通話の場合
なお、チャットではなく通話の場合、10秒の時間制限がないため、コールドスタートによるエラーは発生しませんでした。
ただし、通話の場合でも、Lexボットが呼び出すAWS Lambda関数のレスポンスが30秒以内に返されない場合、「顧客の入力を取得する」ブロックでエラーが発生するため注意が必要です。
説明 デフォルト 引き上げ可能 セルフサービス
Lambda 関数の最大タイムアウト 30 秒 はい いいえ
https://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/quotas.html#quotas-runtime