为什么我无法在 CloudWatch 中查看 Amazon Lex 的对话日志?

上次更新日期:2022 年 5 月 24 日

我无法在 Amazon CloudWatch 中查看 Amazon Lex 的对话日志。

简短描述

您无法在 CloudWatch 中看到自己的 Amazon Lex 对话日志的可能原因有很多。例如,您可能没有配置正确的权限以允许 Amazon Lex 使用 CloudWatch 日志。或者,您可能在机器人上启用了 COPPA,这样做将禁用对话日志功能。

使用本文中的问题排查步骤找出此问题的根本原因。

解决方法

向 Amazon Lex 添加 IAM 角色和策略

检查您是否授予了允许 Amazon Lex 机器人登录到 CloudWatch 的正确权限。要记录对话日志,Amazon Lex 需要使用 CloudWatch 日志并访问 Amazon Simple Storage Service(Amazon S3)存储桶来存储对话日志。按照以下步骤使用 Amazon Lex 控制台添加所需的 AWS Identity and Access Management(IAM)角色和策略。

1.    打开 Amazon Lex 控制台,然后选择要编辑的机器人。

2.    选择 Settings(设置),然后选择 Conversation logs(对话日志)。

3.    选择设置图标,然后选择 IAM role(IAM 角色)。

4.    添加具有类似以下信任关系的 IAM 角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lex.amazonaws.com"   //For V2 "Service": "lexv2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

5.向角色附加一个 IAM 策略,该策略允许将对话文本记录到 CloudWatch 日志中:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "logs:CreateLogStream",
              "logs:PutLogEvents"
          ],
          "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:*"
      }
  ]
}

6.    向角色添加一个 IAM 策略,该策略允许对 S3 存储桶进行音频日志记录:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "s3:PutObject"
          ],
          "Resource": "arn:aws:s3:::bucket-name/*"
      }
  ]
}

检查您的 COPPA 设置

检查您的机器人是否启用了 COPPA。如果您启用了 COPPA,则无法为该机器人使用对话日志功能。

使用 Amazon Lex V1

要检查此设置,请使用 Amazon Lex 控制台查看机器人的常规设置。

1.    打开 Amazon Lex 控制台,然后选择 Return to the V1 console(返回 V1 控制台)。

2.    选择要编辑的机器人。

2.    选择 Settings(设置),然后选择 General(通用)。

3.    选择 COPPA

使用 Amazon Lex V2

1.    打开 Amazon Lex V2 控制台,然后选择 bot versions(机器人版本)。

2.    选择要使用的版本,然后选择 COPPA

3.    如果为要使用的版本启用了 COPPA,则无法将其禁用。相反,请转到 Draft versions(草稿版本),然后选择 COPPA。现在,您可以将 COPPA 更改为 no,然后发布新版本。

其他问题排查步骤

1.    检查您正在使用的日志组是否与您的 Amazon Lex 机器人位于同一区域。

2.    检查您正在使用的机器人别名与您指定的日志记录的别名是否相同。对话日志是根据机器人别名配置的,因此它们必须匹配。

3.    检查您是否在使用 $LATEST 别名或 Amazon Lex 提供的用于测试的测试机器人。在这两种情况下您无法记录对话。

4.    检查您是否尚未在您的 AWS Organization 中启用 AI 服务退订策略。如果您启用退订策略,Amazon Lex 则不会记录对话日志。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?