Amazon Lex(V2)での会話のテキストログを保存する方法を教えてください

2021.12.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

この記事はアノテーション株式会社 AWS Technical Support Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita 14日目の記事です。

困っていた内容

AmazonLex(V2)との会話のログをCloudWatch Logsのロググループに保存できるようにしたいです。

どのような設定が必要か教えてください。

どのような設定が必要なの?

会話ログを記録したいボットに対して、エイリアスの設定画面から会話ログ(会話ログを管理)を有効にする設定を行います。

以下に既存で作成済みのボットに対する会話ログの有効化手順を示します。

  1. 対象のボットのエイリアスの設定画面で会話ログの「会話ログを管理」を押下します。

  2. 「会話ログを管理」の設定画面にて、テキストログを有効に選択、会話ログを保存するロググループ名を選択して右下の「保存」を押下します。

  3. 会話ログの保存設定を行ったボットにて、テストを行います。以下の例では「Lex」→「ボット」→「テスト対象ボット名」→「ボットのバージョン(左ペイン)」→「バージョン(ドラフトバージョン)」→「言語(Japanese)」に遷移後、右下の「テスト」の画面からボットとの会話テストを行っています。

  4. ボットとの会話テストのログについては、「会話ログを管理」で設定したCloudWatchのロググループに保存されていることが確認できます。

補足 - 会話ログを保存するためのIAMロール

対象のボットのエイリアスの設定画面から設定した「会話ログを管理」において、テキストログの有効およびロググループ名を設定することで、ボット作成時に自動的に作成されるIAMロールにおいて、選択したCloudWatchのロググループへ会話ログを書き込むために必要なIAMポリシーが自動的に作成(適用)されていることが確認できます1

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:ap-northeast-1:************:log-group:/aws/testbot/log:*"
            ]
        }
    ]
}

参考資料


  1. AWSアカウントIDはマスキングして表示しています。