翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
構造化 JSON エンドポイントを使用したログの送信 (構造化 JSON ログ)
構造化 JSON ログエンドポイント (/ingest/json) は、単一の JSON オブジェクトまたはオブジェクトの JSON 配列の標準 JSON を受け入れます。このエンドポイントは、各イベントが JSON オブジェクトである構造化ログデータ用に設計されています。
ベアラートークン認証を使用している場合は、続行するベアラートークン認証の設定前に のセットアップステップを完了してください。
リクエストの形式
Content-Type としてのみapplication/json受け入れられます。
単一の JSON オブジェクト:
{"timestamp":1771007942000,"message":"single event","level":"INFO"}
オブジェクトの JSON 配列:
[ {"timestamp":1771007942000,"message":"event one","level":"INFO"}, {"timestamp":1771007943000,"message":"event two","level":"ERROR"} ]
許容される JSON 値タイプ
このエンドポイントは厳密です。JSON オブジェクトのみがイベントとして受け入れられます。
| Input | 行動 |
|---|---|
| 単一の JSON オブジェクト | 1 つのイベントとして受け入れられました |
| オブジェクトの JSON 配列 | 各オブジェクトが個別のイベントになる |
空の配列 [] |
受け入れられ、0 個のイベントが生成されます |
| 配列内のオブジェクト以外 (文字列、数値など) | スキップ済み |
最上位プリミティブ ("hello"、42) |
スキップ済み |
連結オブジェクト {...}{...} |
解析された最初のオブジェクトのみ |
例 – 混合型を持つ配列:
[ {"timestamp":1771007942000,"message":"valid object"}, "just a string", 42, {"timestamp":1771007943000,"message":"another valid object"} ]
結果: 取り込まれた 2 つのイベント ( オブジェクト)、スキップされた 2 つのイベント (文字列と数値)。
タイムスタンプフィールド
"timestamp" フィールドは、NDJSON エンドポイントと同じエポックミリ秒単位です。
| 形式 | 例 | 次のように解釈されます |
|---|---|---|
| 数値 (ミリ秒) | "timestamp":1771007942000 |
1771007942000 ミリ秒 |
| Missing (見つからない) | (タイムスタンプフィールドなし) | サーバーの現在の時刻 |
| 数値以外 | "timestamp":"invalid" |
サーバーの現在の時刻 |
リクエスト例
curl -X POST "https://logs.<region>.amazonaws.com/ingest/json?logGroup=MyLogGroup&logStream=MyStream" \ -H "Authorization: Bearer ACWL<token>" \ -H "Content-Type: application/json" \ -d '[{"timestamp":1771007942000,"message":"User logged in","user_id":"u-123"},{"timestamp":1771007943000,"message":"Order placed","order_id":"o-456"}]'
レスポンス
Success (すべてのイベントが受け入れられる):
HTTP 200 OK {}
部分的な成功 (一部のイベントが拒否):
{ "partialSuccess": { "rejectedLogRecords": 5, "errorMessage": "{\"tooOldLogEventCount\": 3, \"tooNewLogEventCount\": 1, \"expiredLogEventCount\": 1}" } }
rejectedLogRecords フィールドは、拒否されたイベントの総数です。errorMessage フィールドには、拒否理由別の JSON エンコードされた内訳が含まれます。
tooOldLogEventCount– タイムスタンプが保持期間より古いイベントtooNewLogEventCount– タイムスタンプが遠すぎるイベントexpiredLogEventCount– 処理中に期限切れになったイベント
ベストプラクティス
イベントのバッチ処理
パフォーマンスと効率を向上させるには:
可能であれば、1 つのリクエストで複数のイベントをバッチ処理する
推奨バッチサイズ: リクエストあたり 10~100 イベント
最大リクエストサイズ: 1 MB
エラー処理
アプリケーションに適切なエラー処理を実装します。一般的な HTTP ステータスコード:
200 OK– 正常に取り込まれたログ400 Bad Request– 無効なリクエスト形式またはパラメータ401 Unauthorized— 無効または期限切れのベアラートークン403 Forbidden– アクセス許可が不十分404 Not Found– ロググループまたはストリームが存在しません429 Too Many Requests– レート制限を超えました500 Internal Server Error– サービスエラー (エクスポネンシャルバックオフで再試行)
制限事項
最大イベントサイズ: イベントあたり 256 KB
最大リクエストサイズ: 1 MB
リクエストあたりの最大イベント数: 10,000
ロググループ名は CloudWatch Logs の命名規則に従う必要があります
ベアラートークン認証を使用する場合は、ロググループでベアラートークン認証を有効にする必要があります。