

终止支持通知：2025年9月15日， AWS 我们将停止对Amazon Lex V1的支持。2025 年 9 月 15 日之后，您将无法再访问 Amazon Lex V1 控制台或 Amazon Lex V1 资源。如果您使用的是 Amazon Lex V2，请改为参阅 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对话日志
<a name="conversation-logs"></a>

您可以启用*对话日志* 来存储自动程序的交互。您可以使用这些日志查看机器人的性能，并解决与对话相关的问题。您可以记录 [PostText](API_runtime_PostText.md) 操作的文本。您可以记录 [PostContent](API_runtime_PostContent.md) 操作的文本和音频。通过启用对话日志，您可以获得用户与自动程序所进行对话的详细视图。

例如，与您的自动程序开展的会话具有会话 ID。您可以使用此 ID 获取对话的记录，包括用户话语和相应的自动程序响应。您还可以获取元数据，例如话语的意图名称和槽位值。

**注意**  
您不能将对话日志用于受儿童在线隐私保护法案（COPPA）约束的自动程序。

对话日志是为别名配置的。每个别名的文本日志和音频日志都可以有不同的设置。您可以为每个别名启用文本日志和/或音频日志。文本日志在 CloudWatch 日志中存储文本输入、音频输入脚本和相关元数据。音频日志将音频输入存储在 Amazon S3 中。您可以使用 AWS KMS 客户管理功能启用文本和音频日志的加密 CMKs。

要配置日志记录，请使用控制台或 [PutBotAlias](API_PutBotAlias.md) 操作。对于您的机器人或在 Amazon Lex 控制台中提供的测试机器人，您无法记录 `$LATEST` 别名的对话。为别名启用对话日志[PostContent](API_runtime_PostContent.md)或对该别名的[PostText](API_runtime_PostText.md)操作后，将在配置的日志 CloudWatch 日志组或 S3 存储桶中记录文本或音频语句。

**Topics**
+ [用于对话日志的 IAM 策略](conversation-logs-policies.md)
+ [配置对话日志](conversation-logs-configure.md)
+ [加密对话日志](conversation-logs-encrypting.md)
+ [在 Amazon 日志中查看文本 CloudWatch 日志](conversation-logs-cw.md)
+ [在 Amazon S3 中访问音频日志](conversation-logs-s3.md)
+ [使用 CloudWatch 指标监控对话日志状态](conversation-logs-monitoring.md)

# 用于对话日志的 IAM 策略
<a name="conversation-logs-policies"></a>

根据您选择的日志类型，Amazon Lex 需要权限才能使用亚马逊 CloudWatch 日志和亚马逊简单存储服务 (S3) 存储桶来存储您的日志。您必须创建 AWS Identity and Access Management 角色和权限才能让 Amazon Lex 访问这些资源。

## 为对话日志创建 IAM 角色和策略
<a name="conversation-logs-role-and-policy"></a>

要启用对话日志，您必须授予 CloudWatch 日志和 Amazon S3 的写入权限。如果您为 S3 对象启用对象加密，则需要向用于加密对象的 AWS KMS 密钥授予访问权限。

您可以使用 IAM AWS 管理控制台、IAM API 或 AWS Command Line Interface 来创建角色和策略。这些说明使用 AWS CLI 来创建角色和策略。有关使用控制台创建策略的更多信息，请参阅《AWS Identity and Access Management 用户指南》**中的[在 JSON 选项卡上创建策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)。

**注意**  
以下代码针对 Linux 和 macOS 编排了格式。对于 Windows，将 Linux 行继续符（\$1）替换为脱字号（^）。



**为对话日志创建 IAM 角色**

1. 在名为 **LexConversationLogsAssumeRolePolicyDocument.json** 的当前目录中创建一个文档，向其中添加以下代码并保存。此策略文档将 Amazon Lex 作为受信任实体添加到角色中。这允许 Lex 代入将日志传送到为对话日志配置的资源的角色。

------
#### [ JSON ]

****  

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

------

1. 在中 AWS CLI，运行以下命令为对话日志创建 IAM 角色。

   ```
   aws iam create-role \
       --role-name role-name \
       --assume-role-policy-document file://LexConversationLogsAssumeRolePolicyDocument.json
   ```

接下来，创建策略并将其附加到该角色以允许 Amazon Lex 写入 CloudWatch 日志。

**创建用于将对话文本记录到 Log CloudWatch s 的 IAM 策略**

1. 在名为 **LexConversationLogsCloudWatchLogsPolicy.json** 的当前目录中创建一个文档，向其中添加 IAM 策略并保存。

1. 在中 AWS CLI，创建向 CloudWatch 日志组授予写入权限的 IAM 策略。

   ```
   aws iam create-policy \
       --policy-name cloudwatch-policy-name \
       --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
   ```

1. 将该策略附加到您为对话日志创建的 IAM 角色中。

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/cloudwatch-policy-name \
       --role-name role-name
   ```

如果要将音频日志记录到 S3 存储桶，请创建允许 Amazon Lex 写入存储桶的策略。

**创建用于将音频日志记录到 S3 存储桶中的 IAM 策略**

1. 在名为 **LexConversationLogsS3Policy.json** 的当前目录中创建一个文档，向其中添加以下策略并保存。

------
#### [ JSON ]

****  

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

------

1. 在中 AWS CLI，创建授予您的 S3 存储桶写入权限的 IAM 策略。

   ```
   aws iam create-policy \
       --policy-name s3-policy-name \
       --policy-document file://LexConversationLogsS3Policy.json
   ```

1. 将该策略附加到您为对话日志创建的角色。

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/s3-policy-name \
       --role-name role-name
   ```

## 授予传递 IAM 角色的权限
<a name="conversation-logs-pass-role"></a>

当您使用控制台 AWS Command Line Interface、或 AWS 软件开发工具包指定用于对话日志的 IAM 角色时，指定对话日志 IAM 角色的用户必须有权将该角色传递给 Amazon Lex。要允许用户将角色传递给 Amazon Lex，您必须向用户、角色或组授予 `PassRole` 权限。

以下策略定义要授予用户、角色或组的权限。您可以使用 `iam:AssociatedResourceArn` 和 `iam:PassedToService` 条件键来限制权限的范围。有关更多信息，请参阅用户*指南*中的[授予用户将角色传递给 AWS 服务的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)以及 [IAM 和 AWS STS 条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html)。AWS Identity and Access Management 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role-name",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "lex.amazonaws.com"
                },
                "StringLike": {
                    "iam:AssociatedResourceARN": "arn:aws:lex:region:123456789012:bot:bot-name:bot-alias"
                }
            }
        }
    ]
}
```

------

# 配置对话日志
<a name="conversation-logs-configure"></a>

您可以使用控制台或 `PutBotAlias` 操作的 `conversationLogs` 字段来启用和禁用对话日志。您可以启用或禁用音频日志和/或文本日志。日志记录将在新自动程序会话上启动。对日志设置的更改不会体现在活动会话中。

要存储文本日志，请在您的 AWS 账户中使用一个 Amazon Log CloudWatch s 日志组。您可以使用任何有效的日志组。日志组必须与 Amazon Lex 机器人位于同一区域中。有关创建 CloudWatch 日志组的更多信息，请参阅 *Amazon Logs 用户指南中的使用日志组和 CloudWatch 日志*[流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。

要存储音频日志，请在您的 AWS 账户中使用 Amazon S3 存储桶。您可以使用任何有效的 S3 存储桶。该存储桶必须与 Amazon Lex 存储桶位于同一区域。有关创建 S3 存储桶的更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html)。

您必须为 IAM 角色提供策略，使 Amazon Lex 能够写入配置的日志组或存储桶。有关更多信息，请参阅 [为对话日志创建 IAM 角色和策略](conversation-logs-policies.md#conversation-logs-role-and-policy)。

如果您使用创建服务相关角色 AWS Command Line Interface，则必须使用`custom-suffix`选项为角色添加自定义后缀，如下所示：

```
aws iam create-service-linked-role \
    --aws-service-name lex.amazon.aws.com \
    --custom-suffix suffix
```

您用于启用对话日志的 IAM 角色必须具有 `iam:PassRole` 权限。应将以下策略附加到角色。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/role"
        }
    ]
}
```

------

## 启用对话日志
<a name="conversation-logs-enable"></a>

**使用控制台启用日志**

1. 打开 Amazon Lex 控制台 [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex)。

1. 从列表中，选择一个机器人。

1. 选择 **Settings (设置)** 选项卡，然后从左侧菜单中选择 **Conversation logs (对话日志)**。

1. 在别名列表中，选择要配置对话日志的别名的设置图标。

1. 选择是记录文本、音频还是两者。

1. 要进行文本记录，请输入 Amazon Log CloudWatch s 日志组名称。

1. 对于音频日志记录，请输入 S3 存储桶信息。

1. 可选。要加密音频日志，请选择用于加密的密 AWS KMS 钥。

1. 选择具有所需权限的 IAM 角色。

1. 选择 **Save（保存）**以开始记录对话。

**使用 API 启用文本日志**

1. 使用 `conversationLogs` 字段中 `logSettings` 成员的条目调用 [PutBotAlias](API_PutBotAlias.md) 操作
   + 将 `destination` 成员设置为 `CLOUDWATCH_LOGS`
   + 将 `logType` 成员设置为 `TEXT`
   + 将`resourceArn`成员设置为日志日志组的 Amazon 资源名称 (ARN)，该组是 CloudWatch 日志的目标

1. 将 `conversationLogs` 字段的 `iamRoleArn` 成员设置为 IAM 角色的 Amazon 资源名称 (ARN)，该角色应具有在指定资源上启用对话日志所需的权限。

**使用 API 启用音频日志**

1. 使用 `conversationLogs` 字段中 `logSettings` 成员的条目调用 [PutBotAlias](API_PutBotAlias.md) 操作
   + 将 `destination` 成员设置为 `S3`
   + 将 `logType` 成员设置为 `AUDIO`
   + 将 `resourceArn` 成员设置为存储音频日志的 Amazon S3 存储桶的 ARN
   + 可选。要使用特定 AWS KMS 密钥加密音频日志，请设置用于加密的密钥的 ARN `kmsKeyArn` 成员。

1. 将 `conversationLogs` 字段的 `iamRoleArn` 成员设置为 IAM 角色的 Amazon 资源名称 (ARN)，该角色应具有在指定资源上启用对话日志所需的权限。

## 禁用对话日志
<a name="conversation-logs-disable"></a>

**使用控制台禁用日志**

1. 打开 Amazon Lex 控制台 [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex)。

1. 从列表中，选择一个机器人。

1. 选择 **Settings (设置)** 选项卡，然后从左侧菜单中选择 **Conversation logs (对话日志)**。

1. 在别名列表中，选择要配置对话日志的别名的设置图标。

1. 清除文本日志和/或音频日志的复选框以禁用日志记录。

1. 选择 **Save（保存）**以停止记录对话。

**使用 API 禁用日志**
+ 不带 `conversationLogs` 字段调用 `PutBotAlias` 操作。

**使用 API 禁用文本日志**
+ 
  + 正在记录音频时
    + 仅对于 `AUDIO`，使用 `logSettings` 条目调用 [PutBotAlias](API_PutBotAlias.md) 操作。
    + 对 `PutBotAlias` 操作的调用不得包括针对 `TEXT` 的条目 `logSettings`。
  + 没有记录音频时
    + 不带 `conversationLogs` 字段调用 [PutBotAlias](API_PutBotAlias.md) 操作。

**使用 API 禁用音频日志**
+ 
  + 正在记录文本时
    + 仅对于 `TEXT`，使用 `logSettings` 条目调用 [PutBotAlias](API_PutBotAlias.md) 操作。
    + 对 `PutBotAlias` 操作的调用不得包括针对 `AUDIO` 的条目 `logSettings`。
  + 没有记录文本时
    + 不带 `conversationLogs` 字段调用 [PutBotAlias](API_PutBotAlias.md) 操作。

# 加密对话日志
<a name="conversation-logs-encrypting"></a>

您可以使用加密来帮助保护对话日志的内容。对于文本和音频日志，您可以使用 AWS KMS 客户管理 CMKs 来加密 CloudWatch 日志组和 S3 存储桶中的数据。

**注意**  
Amazon Lex 仅支持对称 CMKs。不能使用非对称 CMK 来加密数据。

您可以使用 Amazon Lex 用于文本 CloudWatch 日志的日志组上的 AWS KMS 密钥启用加密。您无法在日志设置中提供 AWS KMS 密钥来启用对日志组的 AWS KMS 加密。有关更多信息，请参阅 *Amazon Lo CloudWatch gs 用户指南 AWS KMS中的使用加密 CloudWatch 日志*[数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

对于音频日志，您可以在 S3 存储桶上使用默认加密或指定 AWS KMS 密钥来加密您的音频对象。即使您的 S3 存储桶使用默认加密，您仍然可以指定不同的 AWS KMS 密钥来加密您的音频对象。有关更多信息，请参阅**《Amazon Simple Storage Service 开发人员指南》中的 [Amazon Lex 默认 S3 存储桶加密](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)。

如果您选择加密音频日志，Amazon Lex 需要 AWS KMS 权限。您需要将其他策略附加到用于对话日志的 IAM 角色。如果您对 S3 存储桶使用默认加密，则您的策略必须授予对该存储桶配置的 AWS KMS 密钥的访问权限。如果您在音频日志设置中指定了 AWS KMS 密钥，则必须授予对该密钥的访问权限。

如果您还没有为对话日志创建角色，请参阅[用于对话日志的 IAM 策略](conversation-logs-policies.md)。

**创建用于使用 AWS KMS 密钥加密音频日志的 IAM 策略**

1. 在名为 **LexConversationLogsKMSPolicy.json** 的当前目录中创建一个文档，向其中添加以下策略并保存。

1. 在中 AWS CLI，创建授予使用 AWS KMS 密钥加密音频日志的权限的 IAM 策略。

   ```
   aws iam create-policy \
       --policy-name kms-policy-name \
       --policy-document file://LexConversationLogsKMSPolicy.json
   ```

1. 将该策略附加到您为对话日志创建的角色。

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::account-id:policy/kms-policy-name \
       --role-name role-name
   ```

# 在 Amazon 日志中查看文本 CloudWatch 日志
<a name="conversation-logs-cw"></a>

Amazon Lex 将您的对话文本日志存储在亚马逊 CloudWatch 日志中。要查看日志，您可以使用 CloudWatch 日志控制台或 API。有关更多信息，请参阅 *Amazon Logs 用户指南中的[使用筛选模式搜索CloudWatch 日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SearchDataFilterPattern.html)和 CloudWatch 日志*[见解查询语法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)。

**使用 Amazon Lex 控制台查看日志**

1. 打开 Amazon Lex 控制台 [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex)。

1. 从列表中，选择一个机器人。

1. 选择 **Settings (设置)** 选项卡，然后从左侧菜单中选择 **Conversation logs (对话日志)**。

1. 选择 “**文本日志**” 下的链接，在 CloudWatch 控制台中查看别名的日志。

您也可以使用 CloudWatch 控制台或 API 来查看日志条目。要查找日志条目，请导航到为该别名配置的日志组。您可以在 Amazon Lex 控制台中或使用 [GetBotAlias](API_GetBotAlias.md) 操作查找日志的日志流前缀。

用户话语的日志条目位于多个日志流中。对话中的一个话语在一个日志流中具有一个带指定前缀的条目。日志流中的条目包含以下信息。

```
{
   "messageVersion": "1.0",
   "botName": "bot name",
   "botAlias": "bot alias",
   "botVersion": "bot version",
   "inputTranscript": "text used to process the request",
   "botResponse": "response from the bot",
   "intent": "matched intent",
   "nluIntentConfidence": "number",
   "slots": {
       "slot name": "slot value",
       "slot name": null,
       "slot name": "slot value"
       ...
   },
   "alternativeIntents": [
       {
           "name": "intent name",
           "nluIntentConfidence": "number",
           "slots": {
               "slot name": slot value,
               "slot name": null,
               "slot name": slot value
               ...
           }
       },
       {
           "name": "intent name",
           "nluIntentConfidence": number,
           "slots": {}
       }
   ],
   "developerOverride": "true" | "false",
   "missedUtterance": true | false,
   "inputDialogMode": "Text" | "Speech",
   "requestId": "request ID",
   "s3PathForAudio": "S3 path to audio file",
   "userId": "user ID",
   "sessionId": "session ID",
   "sentimentResponse": {
       "sentimentScore": "{Positive: number, Negative: number, Neutral: number, Mixed: number}",
       "sentimentLabel": "Positive" | "Negative" | "Neutral" | "Mixed"
   },
   "slotToElicit": "slot name",
   "dialogState": "ElicitIntent" | "ConfirmIntent" | "ElicitSlot" | "Fulfilled" | "ReadyForFulfillment" | "Failed",
   "responseCard": {
       "genericAttachments": [
           ...
       ],
       "contentType": "application/vnd.amazonaws.card.generic",
       "version": 1
    },
   "locale": "locale",
   "timestamp": "ISO 8601 UTC timestamp",
   "kendraResponse": {
      "totalNumberOfResults": number,
      "resultItems": [
          {
              "id": "query ID",
              "type": "DOCUMENT" | "QUESTION_ANSWER" | "ANSWER",
              "additionalAttributes": [
                  {
                     ...
                  }
              ],
              "documentId": "document ID",
              "documentTitle": {
                  "text": "title",
                  "highlights": null
              },
              "documentExcerpt": {
                  "text": "text",
                  "highlights": [
                      {
                          "beginOffset": number,
                          "endOffset": number,
                          "topAnswer": true | false
                      }
                  ]
              },
              "documentURI": "URI",
              "documentAttributes": []
          }  
      ],
      "facetResults": [],
      "sdkResponseMetadata": {
          "requestId": "request ID"
      },
      "sdkHttpMetadata": {
          "httpHeaders": {
              "Content-Length": "number",
              "Content-Type": "application/x-amz-json-1.1",
              "Date": "date and time",
              "x-amzn-RequestId": "request ID"
          },
          "httpStatusCode": 200
      },
      "queryId": "query ID"
   },
   "sessionAttributes": {
       "attribute name": "attribute value"
       ...
    },
   "requestAttributes": {
       "attribute name": "attribute value"
       ...
    }
}
```

日志条目的内容取决于事务的结果以及自动程序和请求的配置。
+ 如果 `missedUtterance` 字段为 `true`，则 `intent`、`slots` 和 `slotToElicit` 字段不会显示在条目中。
+ 如果音频日志已禁用或者 `inputDialogMode` 字段为 `Text`，则不显示 `s3PathForAudio` 字段。
+ 仅当您为自动程序定义了响应卡时，才会显示 `responseCard` 字段。
+ 仅当您在请求中指定了请求属性时，才会显示 `requestAttributes` 映射。
+ 只有在 `AMAZON.KendraSearchIntent` 请求搜索 Amazon Kendra 索引时，`kendraResponse` 字段才会出现。
+ 当在机器人的 Lambda 函数中指定了替代意图时，`developerOverride` 字段的值为 True。
+ 仅当在请求中指定了会话属性时，才会显示 `sessionAttributes` 映射。
+ 仅当将自动程序配置为返回情绪值时，才会显示 `sentimentResponse` 映射。

**注意**  
输入格式可以更改，但不必对 `messageVersion` 做出相应更改。您的代码不应在有新字段时引发错误。

您必须设置角色和策略才能允许 Amazon Lex 写入 CloudWatch 日志。有关更多信息，请参阅 [用于对话日志的 IAM 策略](conversation-logs-policies.md)。

# 在 Amazon S3 中访问音频日志
<a name="conversation-logs-s3"></a>

Amazon Lex 将对话的音频日志存储在 S3 存储桶中。

**使用控制台访问音频日志**

1. 打开 Amazon Lex 控制台 [https://console.aws.amazon.com/lex](https://console.aws.amazon.com/lex)。

1. 从列表中，选择一个机器人。

1. 选择 **Settings (设置)** 选项卡，然后从左侧菜单中选择 **Conversation logs (对话日志)**。

1. 选择**音频日志**下的链接以在 Amazon S3 控制台中访问该别名的日志。

您也可以使用 Amazon S3 控制台或 API 来访问音频日志。您可以在 Amazon Lex 控制台或 `GetBotAlias` 操作响应的 `resourcePrefix` 字段中查看音频文件的 S3 对象键前缀。

# 使用 CloudWatch 指标监控对话日志状态
<a name="conversation-logs-monitoring"></a>

使用 Amazon CloudWatch 监控您的对话日志的交付指标。您可以在指标上设置警报，以便在日志记录发生问题时获取通知。

Amazon Lex 在 `AWS/Lex` 命名空间中为对话日志提供了四个指标：
+ `ConversationLogsAudioDeliverySuccess`
+ `ConversationLogsAudioDeliveryFailure`
+ `ConversationLogsTextDeliverySuccess`
+ `ConversationLogsTextDeliveryFailure`

有关更多信息，请参阅 [CloudWatch 对话日志的指标](monitoring-aws-lex-cloudwatch.md#cloudwatch-metrics-for-logging)。

成功指标表明 Amazon Lex 已成功将音频或文本日志写入其目标。

失败指标表明 Amazon Lex 无法将音频或文本日志传输到指定目标。这通常是配置错误。当您的失败指标大于零时，请检查以下内容：
+ 确保 Amazon Lex 是 IAM 角色的可信实体。
+ 对于文本记录，请确保 CloudWatch 日志组存在。对于音频日志记录，请确保 S3 存储桶存在。
+ 确保 Amazon Lex 用于访问 CloudWatch 日志日志组或 S3 存储桶的 IAM 角色具有日志组或存储桶的写入权限。
+ 确保 S3 存储桶与 Amazon Lex 机器人位于相同的区域，并且属于您的账户。
+ 如果您使用 AWS KMS 密钥进行 S3 加密，请确保没有任何策略阻止 Amazon Lex 使用您的密钥，并确保您提供的 IAM 角色具有必要的 AWS KMS 权限。有关更多信息，请参阅 [用于对话日志的 IAM 策略](conversation-logs-policies.md)。