

# 接收器
<a name="pipeline-sinks"></a>

接收器定义了已处理日志数据的发送目标。每条管道必须恰好有一个接收器。目前，仅支持 CloudWatch Logs 接收器。


**按来源类型划分的接收器行为**  

| 源类型 | 日志组配置 | 行为 | 
| --- | --- | --- | 
| CloudWatch Logs | 必须使用 @original | 事件发送回其原始日志组 | 
| S3 | 自定义日志组路径 | 事件将发送到指定的日志组 | 
| 第三方 API | 自定义日志组路径 | 事件将发送到指定的日志组 | 

**配置**  
使用以下参数配置接收器：

**Example 非 CloudWatch Logs 来源配置**  

```
sink:
  cloudwatch_logs:
    log_group: "/aws/my-application/logs"
```

**Example CloudWatch Logs 来源配置**  

```
sink:
  cloudwatch_logs:
    log_group: "@original"
```参数

`log_group`（必需）  
已处理事件将发送到的 CloudWatch Logs 日志组的名称。对于采用非 `cloudwatch_logs` 来源的管道，此项必须是现有日志组的名称。对于采用 `cloudwatch_logs` 来源的管道，唯一允许的值是 `@original`。

`include_original`（可选）  
如果存在，则在进行任何转换之前存储各个原始日志事件的副本。这样可以保留原始数据，以用于审计或合规目的。指定为空对象 (`{}`)。仅适用于带有 `cloudwatch_logs` 来源的管道。启用此选项后，必须至少配置一个处理器。

**Example 保留原始日志的 CloudWatch Logs 接收器**  

```
sink:
  - cloudwatch_logs:
      log_group: "@original"
      include_original: {}
```

## 要求和限制
<a name="sink-requirements"></a>

日志组存在  
如果使用 AWS 管理控制台创建，CloudWatch 将尝试创建指定的日志组和相应的资源策略（如果在使用非 CloudWatch 日志来源时指定的日志组不存在）。否则，在创建管道之前，指定的日志组必须存在。

事件大小  
在处理之后，每个日志事件的大小不能超过 256 KB。

日志组保留  
管道使用在目标日志组上配置的保留设置。

日志组和资源策略  
写入日志组的管道需要使用 CloudWatch Logs 资源策略，使用 `cloudwatch_logs` 来源的管道除外。使用 AWS 管理控制台 配置管道时，CloudWatch 将在需要时尝试添加资源策略。如果您使用 AWS CLI 或 API 创建管道，则必须手动创建策略并使用 `logs:PutResourcePolicy` 请求进行添加。有关更多信息，请参阅 [资源策略](pipeline-iam-reference.md#resource-policies)。

跨区域支持  
目标日志组和管道必须位于同一区域内。

**重要**  
对于使用 `cloudwatch_logs` 来源类型的管道：  
必须使用 `@original` 作为日志组的值。
事件总是发送回其原始日志组。
在管道的整个生命周期中，原始日志组必须存在。
带有处理器的管道会改变从 AWS 服务中日志拦截的原始 CloudWatch 日志组中的日志事件。要保留原始数据，请在接收器配置中启用 `include_original`。

**注意**  
日志事件受 CloudWatch Logs 配额和限制的约束。