

# IVS 聊天功能日志记录
<a name="chat-logging"></a>

聊天记录功能允许您将房间中的所有消息记录到三个标准位置中的任何一个：Amazon S3 存储桶、Amazon CloudWatch Logs 或 Amazon Kinesis Data Firehose。随后，这些日志可用于分析或构建链接到实时视频会话的聊天回放。

## 为某个房间启用聊天记录
<a name="chat-logging-enable"></a>

聊天记录是一个高级选项，可以通过将日志记录配置与某个房间相关联来启用。日志记录配置是一种资源，允许您指定记录房间消息的位置类型（Amazon S3 存储桶、Amazon CloudWatch Logs 或 Amazon Kinesis Data Firehose）。有关创建和管理日志记录配置的详细信息，请参阅 [Amazon IVS Chat 入门](getting-started-chat.md)和 [Amazon IVS Chat API 参考](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/Welcome.html)。

在创建新房间 ([CreateRoom](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/API_CreateRoom.html)) 或更新现有房间 ([UpdateRoom](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/API_UpdateRoom.html)) 时，您最多可以将三个日志记录配置与每个房间相关联。您可以将多个房间与同一个日志记录配置相关联。

当至少一个处于活动状态的日志记录配置与某个房间相关联时，通过 [Amazon IVS Chat 消息收发 API](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/welcome.html) 发送到该房间的每个消息请求都会自动记录到指定位置。以下是平均传播延迟（从发送消息请求到消息在指定位置可用时）：
+ Amazon S3 存储桶：5 分钟
+ Amazon CloudWatch Logs 或 Amazon Kinesis Data Firehose：10 秒

## 消息内容
<a name="chat-logging-message-content"></a>

### 格式
<a name="message-content-format"></a>

```
{
   "event_timestamp": "string",
   "type": "string",
   "version": "string",
   "payload": { "string": "string" }
}
```

### Fields
<a name="message-content-fields"></a>


| 字段 | 描述 | 
| --- | --- | 
| `event_timestamp` | Amazon IVS Chat 收到消息时的 UTC 时间戳。 | 
| `payload` | 客户端将从 Amazon IVS Chat 服务接收的[消息（订阅）](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/actions-message-subscribe.html)或[事件（订阅）](https://docs.aws.amazon.com//ivs/latest/chatmsgapireference/actions-event-subscribe.html)JSON 负载。 | 
| `type` | 聊天消息的类型。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/ChatUserGuide/chat-logging.html)  | 
| `version` | 消息内容格式的版本。 | 

## Amazon S3 存储桶
<a name="chat-logging-s3-bucket"></a>

### 格式
<a name="s3-bucket-format"></a>

消息日志使用以下 S3 前缀和文件格式进行组织和存储：

```
AWSLogs/<account_id>/IVSChatLogs/<version>/<region>/room_<resource_id>/<year>/<month>/<day>/<hours>/<account_id>_IVSChatLogs_<version>_<region>_room_<resource_id>_<year><month><day><hours><minutes>_<hash>.log.gz
```

### Fields
<a name="s3-bucket-fields"></a>


| 字段 | 描述 | 
| --- | --- | 
| `<account_id>` | 创建房间的亚马逊云科技账户 ID。 | 
| `<hash>` | 系统为确保唯一性而生成的哈希值。 | 
| `<region>` | 创建房间的亚马逊云科技服务区域。 | 
| `<resource_id>` | 房间 ARN 的资源 ID 部分。 | 
| `<version>` | 消息内容格式的版本。 | 
| `<year> / <month> / <day> / <hours> / <minute>` | Amazon IVS Chat 收到消息时的 UTC 时间戳。 | 

### 示例
<a name="s3-bucket-example"></a>

```
AWSLogs/123456789012/IVSChatLogs/1.0/us-west-2/room_abc123DEF456/2022/10/14/17/123456789012_IVSChatLogs_1.0_us-west-2_room_abc123DEF456_20221014T1740Z_1766dcbc.log.gz
```

## Amazon CloudWatch Logs
<a name="chat-logging-cloudwatch-logs"></a>

### 格式
<a name="cloudwatch-logs-format"></a>

消息日志使用以下日志流名称格式进行组织和存储：

```
aws/IVSChatLogs/<version>/room_<resource_id>
```

### Fields
<a name="cloudwatch-logs-fields"></a>


| 字段 | 描述 | 
| --- | --- | 
| `<resource_id>` | 房间 ARN 的资源 ID 部分。 | 
| `<version>` | 消息内容格式的版本。 | 

### 示例
<a name="cloudwatch-logs-example"></a>

```
aws/IVSChatLogs/1.0/room_abc123DEF456
```

## Amazon Kinesis Data Firehose
<a name="chat-logging-kinesis-firehose"></a>

消息日志将发送到传输流，作为实时流数据传输到目标位置，例如 Amazon Redshift、Amazon OpenSearch Service、Splunk，以及任何自定义 HTTP 端点或所支持的第三方服务提供商拥有的 HTTP 端点。有关更多信息，请参阅[什么是 Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html?icmpid=docs_console_unmapped)。

## 约束
<a name="chat-logging-constraints"></a>
+ 您必须拥有存储消息的日志记录位置。
+ 该房间、日志记录配置和日志记录位置必须位于同一亚马逊云科技区域。
+ 只有处于活动状态的日志记录配置可用于聊天记录。
+ 您只能删除不再与任何房间关联的日志记录配置。

将消息记录到您拥有的位置需要使用您的 Amazon 凭证进行授权。为了向 IVS Chat 提供所需的访问权限，在创建日志记录配置时会自动生成资源策略（适用于 Amazon S3 存储桶或 CloudWatch Logs）或 Amazon IAM [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) (SLR)（适用于 Amazon Kinesis Data Firehose）。*对角色或策略进行任何修改时请务必谨慎，因为这可能会影响聊天记录的权限。*

## 使用 Amazon CloudWatch 监控错误
<a name="chat-logging-monitor-errors"></a>

您可以使用 Amazon CloudWatch 监控聊天记录中出现的错误，也可以创建警报或控制面板来指示或响应对特定错误的更改。

有几种类型的错误。有关更多信息，请参阅[监控 Amazon IVS 聊天功能](chat-health.md)。