

# 来自 CloudWatch Logs 或 Amazon S3 存储桶的自定义日志数据
<a name="ingestion-custom-data-sources"></a>

您可以使用以下方法为自定义数据来源创建管道：

1. **CloudWatch 自定义日志** – 通过提供以下信息在现有 CloudWatch 自定义日志组中定义管道：
   + 数据来源名称
   + 数据来源类型

   有关数据来源名称和类型的更多信息，请参阅《[CloudWatch Logs 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/data-source-discovery-management.html#how-to-get-started-data-sources)》。

1. **S3 自定义来源** – 通过为管道配置来源来处理存储在 S3 存储桶中的任意日志：

   ```
   source:
     s3:
       aws:
         region: "us-east-1"
         sts_role_arn: "arn:aws:iam::<account>:role/<role-name>"
       compression: "gzip"
       codec:
         ndjson:
       data_source_name: "my_custom_logs"
       default_bucket_owner: "123456789012"
       bucket_owners:
         my-bucket: "123456789012"
       disable_bucket_ownership_validation: false
       notification_type: "sqs"
       sqs:
         queue_url: "https://sqs.region.amazonaws.com/<account>/<queue-name>"
       on_error: "retain_messages"
   ```
**注意**  
CSV 处理器不能与 S3 自定义来源一起使用。相反，请使用 S3 来源中的 CSV 编解码器。

**参数**  
`notification_type`（必需）  
指定通知机制。若通过 SQS 进行 S3 事件通知，该参数值必须设为“sqs”。  
`data_source_name`  
标识数据来源。它可以是任何表示数据来源的字符串值。示例：“my\$1custom\$1logs”。  
`aws.region`（必需）  
S3 存储桶与 SQS 队列所在的 AWS 区域。  
`aws.sts_role_arn`（必需）  
访问 S3 和 SQS 资源而要代入的 IAM 角色 ARN。  
`codec`（必需）  
用于解析 S3 对象的编解码器配置。支持 `csv`、`json`、`ndjson` 编解码器。  
`compression`（可选）  
S3 对象的压缩类型。有效值为“none”、“gzip”、“automatic”。默认值为“none”。  
`sqs.queue_url`（对于 SQS 为必填）  
新对象创建时接收 S3 存储桶通知的完整 SQS 队列 URL。  
`on_error`（可选）  
确定如何处理 Amazon SQS 中的错误。可以是 `retain_messages` 或 `delete_messages`。默认值为 `retain_messages`。

**自定义来源配置**

为自定义来源创建管道时：
+ 如果数据来源是 CloudWatch Logs，则解析器必须是管道中的第一个处理器
+ 您可以为自定义日志管道指定任何支持的处理器