PutLogs 操作は、指定された Logstore にログデータを書き込みます。
操作説明
OpenAPI SDK はこの操作をサポートしていません。代わりに Simple Log Service SDK を使用してください。
サービスは、各 PutLogs リクエストのログデータのフォーマットをチェックします。いずれかのログエントリが無効な場合、リクエスト全体が失敗し、ログは書き込まれません。
この操作は、protobuf フォーマットのログデータのみをサポートします。ログデータは LogGroup として構造化されます。
- ログは 2 つのモードで書き込むことができます:
負荷分散 (LoadBalance) モード: データは Logstore 内のすべての書き込み可能なシャードに自動的に書き込まれます。このメソッドは高可用性を提供し、特定の順序を必要としないデータ消費シナリオに適しています。リクエスト構文:
POST /logstores/logstoreName/shards/lb HTTP/1.1 Authorization: LOG yourAccessKeyId:yourSignature Content-Type: application/x-protobuf Content-Length: Content Length Content-MD5: Content MD5 Date: GMT Date Host: ProjectName.Endpoint x-log-apiversion: 0.6.0 x-log-bodyrawsize: BodyRawSize x-log-compresstype: lz4 x-log-signaturemethod: hmac-sha1 <protobuf 形式で圧縮されたログデータ>キーハッシュルーティング (KeyHash) モード: URL に key パラメーターを追加して、データを受信するシャードを決定します。このパラメーターはオプションです。このパラメーターを設定しない場合、システムは自動的に負荷分散モードに切り替わります。たとえば、インスタンスなどのプロデューサーを、その名前のハッシュに基づいて特定のシャードに固定します。これにより、シャードに書き込まれ、シャードから消費されるデータが厳密に順序付けられることが保証されます。マージおよび分割操作中、キーは常に 1 つのシャードにのみ関連付けられます。リクエスト構文:
POST /logstores/logstoreName/shards/route?key=14d2f850ad6ea48e46e4547edbbb27e0 Authorization: LOG yourAccessKeyId:yourSignature Content-Type: application/x-protobuf Content-Length: Content Length Content-MD5: Content MD5 Date: GMT Date Host: ProjectName.Endpoint x-log-apiversion: 0.6.0 x-log-bodyrawsize: BodyRawSize x-log-compresstype: lz4 x-log-signaturemethod: hmac-sha1 <protobuf 形式で圧縮されたログデータ>
各 PutLogs リクエストの生ログの最大サイズは 10 MB です。ロググループ内の各ログの Value は 1 MB を超えてはなりません。古い SDK バージョンでは制限が異なる場合があります。最新の SDK バージョンにアップグレードしてください。
Simple Log Service は、Java および Python SDK で PutLogs を使用する方法の例を提供します。
Protobuf データ
このセクションでは、protobuf フォーマットで圧縮されたログデータのフィールドについて説明します。詳細については、「データモデル」および「データエンコーディング」をご参照ください。
Log
| パラメーター | データ型 | 必須 | 説明 |
| Time | 整数 | はい | ログの時間。値は、1970-1-1 00:00:00 UTC から経過した秒数を表す UNIX タイムスタンプです。 |
| Contents | リスト | はい | ログフィールドのリスト。リストには少なくとも 1 つの要素が含まれている必要があります。要素の型については、以下の Content テーブルをご参照ください。 |
Content
| パラメーター | データ型 | 必須 | 説明 |
| Key | 文字列 | はい | カスタムキー名。 |
| Value | 文字列 | はい | カスタムキーに対応する値。 |
LogTag
| パラメーター | データ型 | 必須 | 説明 |
| Key | 文字列 | はい | カスタムキー名。 |
| Value | 文字列 | はい | カスタムキーに対応する値。 |
LogGroup
| パラメーター | データ型 | 必須 | 説明 |
| Logs | リスト | はい | ログのリスト。各要素については、Log テーブルをご参照ください。 |
| Topic | 文字列 | いいえ | ログのトピック。このカスタムフィールドを使用して、異なる特徴を持つログデータを区別します。 |
| Source | 文字列 | いいえ | ログのソース。ログを生成したマシンの IP アドレスなど。 |
| LogTags | リスト | はい | ログタグのリスト。各要素については、LogTag テーブルをご参照ください。 |
今すぐお試しください
テスト
RAM 認証
リクエスト構文
POST /logstores/{logstore}/shards/lb HTTP/1.1
パスパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| logstore |
string |
必須 |
Logstore の名前。 |
ali-test-logstore |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| project |
string |
必須 |
プロジェクトの名前。 |
ali-test-project |
| x-log-compresstype |
string |
必須 |
ログの圧縮タイプ。有効な値: lz4 および gzip。 |
lz4 |
| body | LogGroup |
任意 |
protobuf フォーマットで圧縮されたログデータ。 |
リクエストヘッダー
Simple 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"
}
<lz4 を使用して圧縮された protobuf 形式のログのバイナリデータ>
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
レスポンスフィールドがありません。
レスポンスヘッダー
PutLogs 操作には特定のレスポンスヘッダーはありません。Simple Log Service API の共通レスポンスヘッダーの詳細については、「共通レスポンスヘッダー」をご参照ください。
レスポンス要素
HTTP ステータスコード 200 は、リクエストが成功したことを示します。レスポンス要素は返されません。
例
成功レスポンス
JSONJSON
{}
エラーコード
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。