调用PutLogs接口向指定的Logstore中写入日志数据。
接口说明
目前 openapi SDK 不支持此接口,请使用日志服务 SDK。
- 服务端会对每次 PutLogs 写入的日志数据做格式检查,只要日志数据中有任何一条日志不符合规范,则整个请求失败且无任何日志数据成功写入。
- 目前仅支持写入 PB 格式的日志数据,日志数据以 LogGroup 的形式展示。
- 日志数据写入时有两种模式:
- 负载均衡模式(LoadBalance):自动根据 Logstore 下所有可写的 Shard 进行负载均衡写入。该方法写入可用性较高,适合不保证顺序的数据消费场景。
- Key 路由 Shard 模式(KeyHash):在 URL 参数中增加 Key 字段,用来判断数据写入哪个 Shard 中。该参数为可选参数,不设置时自动切换为负载均衡写入模式。例如,可以将某个生产者(例如 instance)根据名称 Hash 固定到 Shard 上,这样就能保证写入与消费在该 Shard 上的数据是严格有序的(在合并、分裂过程中能够严格保证对于 Key 在一个时间点只会出现在一个 Shard 上,请参见分区(Shard)。
- PutLogs 接口每次可以写入的原始日志大小上限为 10 MB,日志组中每条日志下的 Value 部分建议不超过 1 MB。历史版本的 SDK 可能存在不同限制,建议升级到最新的版本解决。
- 在 SDK 参考中,日志服务提供 Java 和 Python SDK 等 PutLogs 的使用示例。更多信息,请参见Java SDK 快速入门和Python SDK 快速入门等。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
当前API暂无授权信息透出。
请求语法
POST /logstores/{logstore}/shards/lb HTTP/1.1
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
project | string | 是 | Project 名称。 | ali-test-project |
logstore | string | 是 | Logstore 名称。 | ali-test-logstore |
x-log-compresstype | string | 是 | 日志压缩类型,目前支持 lz4、gzip 两种类型。 | lz4 |
body | LogGroup | 否 | 压缩后的 pb 日志数据 |
请求头
关于 Log Service API 的公共请求头,请参见公共请求头。
请求示例:
POST /logstores/sls-test-logstore/shards/lb
{
"Content-Length": 118,
"Content-Type":"application/x-protobuf",
"x-log-bodyrawsize":1356,
"Host": "ali-test-project.cn-hangzhou-devcommon-intranet.sls.aliyuncs.com",
"Content-MD5":"6554BD042149C844761C2C094A8FECCE",
"Date":"Thu, 12 Nov 2015 06:54:26 GMT",
"x-log-apiversion": "0.6.0",
"x-log-compresstype":"lz4"
"x-log-signaturemethod": "hmac-sha1",
"Authorization":"LOG yourAccessKeyId:yourSignature"
}
<PB 格式日志使用 Lz4 压缩后的二进制数据>
返回参数
响应头
PutLogs 接口无特有响应头。关于 Log Service API 的公共响应头,请参见公共响应头。
响应元素
返回 HTTP 状态码 200,则表示请求成功。该接口调用成功后无任何响应元素。
示例
正常返回示例
JSON
格式
{}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-09-06 | 新增 OpenAPI | 查看变更详情 |