Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Envoi de journaux à l'aide du point de terminaison JSON structuré (journaux JSON structurés)
Le point de terminaison Structured JSON Logs (/ingest/json) accepte le JSON standard, qu'il s'agisse d'un seul objet JSON ou d'un tableau d'objets JSON. Ce point de terminaison est conçu pour les données de journal structurées où chaque événement est un objet JSON.
Si vous utilisez l'authentification par jeton porteur, suivez les étapes de configuration décrites Configuration de l'authentification par jeton porteur avant de continuer.
Format des demandes
Seul application/json est accepté comme type de contenu.
Objet JSON unique :
{"timestamp":1771007942000,"message":"single event","level":"INFO"}
Tableau d'objets JSON :
[ {"timestamp":1771007942000,"message":"event one","level":"INFO"}, {"timestamp":1771007943000,"message":"event two","level":"ERROR"} ]
Types de valeurs JSON acceptés
Ce point de terminaison est strict : seuls les objets JSON sont acceptés en tant qu'événements.
| Input | Comportement |
|---|---|
| Objet JSON unique | Accepté comme un seul événement |
| Tableau d'objets JSON | Chaque objet devient un événement distinct |
Tableau vide [] |
Accepté, produit 0 événements |
| Non-objet dans le tableau (chaîne, nombre, etc.) | Ignoré |
Primitive de haut niveau ("hello",42) |
Ignoré |
Objets concaténés {...}{...} |
Seul le premier objet est analysé |
Exemple — tableau de types mixtes :
[ {"timestamp":1771007942000,"message":"valid object"}, "just a string", 42, {"timestamp":1771007943000,"message":"another valid object"} ]
Résultat : 2 événements ingérés (les objets), 2 ignorés (la chaîne et le chiffre).
Champ d'horodatage
Le "timestamp" champ est exprimé en millisecondes d'époque, comme le point de terminaison NDJSON.
| Format | Exemple | Interprété comme |
|---|---|---|
| Numérique (millis) | "timestamp":1771007942000 |
1771007942000 ms |
| Manquant | (aucun champ d'horodatage) | Heure actuelle du serveur |
| Non numérique | "timestamp":"invalid" |
Heure actuelle du serveur |
Exemple de demande
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"}]'
Réponses
Succès (tous les événements sont acceptés) :
HTTP 200 OK {}
Succès partiel (certains événements rejetés) :
{ "partialSuccess": { "rejectedLogRecords": 5, "errorMessage": "{\"tooOldLogEventCount\": 3, \"tooNewLogEventCount\": 1, \"expiredLogEventCount\": 1}" } }
Le rejectedLogRecords champ indique le nombre total d'événements rejetés. Le errorMessage champ contient une ventilation codée en JSON par motif de rejet :
tooOldLogEventCount— Événements dont l'horodatage est antérieur à la période de conservationtooNewLogEventCount— Événements dont l'horodatage est trop lointain dans le futurexpiredLogEventCount— Événements qui ont expiré pendant le traitement
Bonnes pratiques
Événements de mise en lots
Pour de meilleures performances et une meilleure efficacité :
Batch de plusieurs événements en une seule demande lorsque cela est possible
Taille de lot recommandée : 10 à 100 événements par demande
Taille maximale de la demande : 1 Mo
Gestion des erreurs
Implémentez une gestion appropriée des erreurs dans votre application. Codes d'état HTTP courants :
200 OK— Logs correctement ingérés400 Bad Request— Format ou paramètres de demande non valides401 Unauthorized— Jeton porteur non valide ou expiré403 Forbidden— Autorisations insuffisantes404 Not Found— Le groupe de journaux ou le flux n'existe pas429 Too Many Requests— Limite de débit dépassée500 Internal Server Error— Erreur de service (nouvelle tentative avec retard exponentiel)
Limitations
Taille maximale de l'événement : 256 Ko par événement
Taille maximale de la demande : 1 Mo
Nombre maximum d'événements par demande : 10 000
Les noms des groupes de journaux doivent respecter les conventions de dénomination des CloudWatch journaux
L'authentification par jeton porteur doit être activée sur le groupe de journaux si l'authentification par jeton porteur est utilisée.