Amazon Q in Connectのアシスタントを作り直した際に、CloudWatch Logs出力を再設定する手順
はじめに
以前の記事「Amazon Q in ConnectのログをCloudWatch Logsに出力してみた」では、Amazon Q in Connectのログ出力設定について解説しました。
Amazon Q in Connectの検証を行っていく中で、「設定変更のためにAmazon Q in Connectのアシスタント(ドメイン)自体を作り直した」というケースがあるかと思います。
しかし、アシスタントを作り直すとアシスタントID(ARN)が変わってしまうため、以前のログ設定のままではログが出力されなくなります。
本記事では、既存のロググループや配信先(Destination)の設定はそのまま再利用し、新しいアシスタントのログを再び出力させるための手順を解説します。
前提条件
- 以前の記事の手順で、すでにCloudWatch Logsへの出力設定(Delivery Destination)とロググループが作成済みであること。
- Amazon Q in Connectのアシスタントを作り直していること。
設定の全体像
CloudWatch Logs の配信設定は、実際の「リソース(アシスタント)」と「ロググループ」の間に、CloudWatch Logs 側の管理リソースを挟む構成になっています。
データの流れと構成は以下の通りです。
- [Amazon Q in Connect] → [配信元] → [配信] → [配信先] → [ロググループ]
それぞれの役割は以下のようになります。
- 配信元 (Delivery Source):Q in Connect アシスタントを「ログの発生源」として定義するリソース
- 配信 (Delivery):配信元と配信先をつなぐパイプ
- 配信先 (Delivery Destination):ロググループを「ログの格納先」として定義するリソース
本記事での設定例(リソース名)
本記事では、以前の記事で以下の名前でリソースが作成されている前提で進めます。
- Amazon Q in Connect アシスタント名:
amazon-q-in-connect - 配信元 (Source) 名:
q-in-connect-source - 配信先 (Destination) 名:
q-in-connect-destination
アシスタントを作り直した場合、大元の [Amazon Q in Connect] のARNが変わります。
そのため、それを参照している 「 配信元」 の設定(ARN)の更新が必要ですが、AWSの仕様上、既存の配信元のARNだけを更新することはできません。
また、パイプである 「配信」 がつながったままでは 「配信元」 を削除することもできません。
そのため、以下の手順で設定を更新します。
- 配信 (Delivery) を削除する
- 古い 配信元 (Source) を削除する
- 新しいアシスタントで 配信元 (Source) を作成する
- 配信 (Delivery) を再作成し、配信元 (Source) と既存の 配信先 (Destination) と紐付ける
[配信先] → [ロググループ] の部分は、以前の設定がそのまま残っているため、今回の作業で修正する必要はありません。
また、ロググループや過去のログデータは削除されません。
手順1,2:古い設定の削除
まず、古いアシスタントに紐付いている設定を解除します。
削除対象の「配信ID」を確認
現在設定されている配信(Delivery)のIDを確認します。
aws logs describe-deliveries
出力例
{
"deliveries": [
{
"id": "3fdIPlPfbfBlvxsv", <-- ★このIDを控える
"arn": "arn:aws:logs:...",
"deliverySourceName": "q-in-connect-source",
...
}
]
}
「配信 (Delivery)」を削除
取得したIDを指定して削除します。
aws logs delete-delivery --id "3fdIPlPfbfBlvxsv"
古い「配信元 (Source)」を削除
パイプがなくなったので、古いソース定義を削除できます。
aws logs delete-delivery-source --name "q-in-connect-source"
これで、新しい設定を受け入れる準備が整いました。
手順3,4:新しいアシスタントでの再設定
新しいアシスタントARNの取得
作り直したAmazon Q in ConnectのアシスタントARNを確認します。
.name の部分はご自身のアシスタント名に合わせて変更してください。
aws qconnect list-assistants | jq -r '.assistantSummaries[] |
select(.name == "amazon-q-in-connect") |
.assistantArn'
新しい「配信元 (Source)」の作成
取得した新しいARNを使って、ソースを再作成します。
今回、名前は、削除前と同じ q-in-connect-source という名前で作成します。
aws logs put-delivery-source \
--log-type EVENT_LOGS \
--name "q-in-connect-source" \
--resource-arn "アシスタントARN"
「配信 (Delivery)」の再作成(紐付け)
配信先(Destination)は以前作成したものを再利用します。
まず、再利用する配信先(Destination)のARNを取得します。
aws logs get-delivery-destination --name "q-in-connect-destination"
出力例
{
"deliveryDestination": {
"name": "q-in-connect-destination",
"arn": "arn:aws:logs:ap-northeast-1:123456789012:delivery-destination:q-in-connect-destination", <-- ★このARNを控える
...
}
}
取得したARNを delivery-destination-arn に指定して、紐付けを行います。
aws logs create-delivery \
--delivery-destination-arn "arn:aws:logs:ap-northeast-1:123456789012:delivery-destination:q-in-connect-destination" \
--delivery-source-name "q-in-connect-source"
これでAWS CLIでの設定は完了です。
動作確認
設定完了後、Amazon Connectのエージェントワークスペースで手動検索にて質問を投げかけてみます。
CloudWatch Logsの既存のロググループ(/aws/connect/q-in-connect)を確認し、新しい時刻でログストリーム QiCAssistantTranscript にイベントが出力されていれば成功です。
参考







