Passer au contenu

Comment résoudre les problèmes liés aux journaux CloudWatch manquants pour les API REST API Gateway ?

Lecture de 4 minute(s)
0

Je souhaite comprendre pourquoi je ne trouve aucun journal lorsque j'active Amazon CloudWatch Logs pour Amazon API Gateway.

Brève description

Lorsque vous configurez la journalisation CloudWatch pour les API REST dans API Gateway, vous pouvez utiliser la journalisation des exécutions et la journalisation des accès. API Gateway ne consigne pas toutes les erreurs côté client qu'elle rejette dans les journaux d'exécution. Par exemple, si un client envoie une demande d'API à un chemin de ressource incorrect de votre API REST, il reçoit la réponse suivante : "403 Missing Authentication Token". API Gateway ne consigne pas ce type de réponse dans les journaux d'exécution. Pour résoudre les erreurs côté client, utilisez la journalisation des accès CloudWatch.

API Gateway peut ne pas générer de journaux pour les erreurs suivantes :

  • Erreurs "413 Request Entity Too Large"
  • Erreurs "431 Request Header Fields Too Large"
  • Erreurs "Excessive 429 Too Many Requests"
  • Erreurs de la série 400 qui se produisent parce que le client a envoyé des requêtes à un domaine personnalisé sans mappage d'API
  • Erreurs de la série 500 qui se produisent en raison de défaillances internes

Pour plus d’informations, consultez la section Surveiller les API REST privées dans API Gateway.

Résolution

Vérifier les autorisations API Gateway pour CloudWatch Logs

Pour activer CloudWatch Logs, vous devez autoriser API Gateway à lire et à écrire les journaux de votre compte dans CloudWatch pour votre compte AWS.

Créez un rôle Gestion des identités et des accès AWS (AWS IAM) avec apigateway.amazonaws.com comme entité d’approbation. Puis, attachez la politique gérée par AWS AmazonAPIGatewayPushToCloudWatchLogs au rôle. Définissez l’Amazon Resource Name (ARN) du rôle sur le cloudwatchRoleArn pour votre compte.

Exemple de politique :

{    
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:PutLogEvents",
        "logs:GetLogEvents",
        "logs:FilterLogEvents"
      ],
      "Resource": "*"
    }
  ]
}

Remarque : Assurez-vous d'activer le service de jetons de sécurité AWS (AWS STS) pour votre région AWS. Vérifiez également que vous avez activé le rôle IAM pour toutes les régions dans lesquelles vous souhaitez activer CloudWatch Logs.

Pour plus d'informations, consultez les sections Activation et désactivation d'AWS STS dans une région AWS et Autorisations pour la journalisation CloudWatch.

Vérifier les paramètres de journalisation API Gateway

Vérifiez que vous avez correctement configuré les paramètres d'exécution de CloudWatch ou de journalisation des accès pour API Gateway.

Remarque : Vous pouvez activer la journalisation des exécutions et la journalisation des accès indépendamment l'une de l'autre.

Procédez comme suit :

  1. Ouvrez la console API Gateway.
  2. Dans le volet de navigation, sélectionnez API.
  3. Sélectionnez votre API, puis sélectionnez Étapes.
  4. Choisissez votre étape, puis sélectionnez l'onglet Journaux/Suivi.
  5. Dans Paramètres CloudWatch, sélectionnez Activer CloudWatch Logs.
  6. Définissez Niveau de journalisation sur ERREUR et INFORMATIONS.
    Remarque : Si vous définissez Niveau de journalisation sur ERREUR, API Gateway consigne uniquement les erreurs de demande et non les demandes d'API réussies.
  7. Sélectionnez Suivi des données pour activer la journalisation du suivi de données pour votre étape.
    Remarque : Il est recommandé de ne pas activer le suivi de données pour les API de production, car API Gateway peut consigner des données sensibles.
  8. Dans Journalisation des accès personnalisée, choisissez Activer la journalisation des accès.

Vérifier votre méthode de journalisation

Par défaut, toutes les ressources d'API utilisent la même configuration que l’étape de ressources d'API. Si vous ne souhaitez pas hériter de la scène, remplacez le paramètre et définissez différentes configurations.

Pour vérifier votre méthode de journalisation, procédez comme suit :

  1. Ouvrez la console API Gateway.
  2. Dans le volet de navigation, sélectionnez API.
  3. Sélectionnez votre API, puis sélectionnez Étapes.
  4. Dans Étapes, développez le nom de votre étape. Puis, choisissez votre méthode HTTP, par exemple GET.
  5. Sous Paramètres, sélectionnez Remplacer pour cette méthode.
    Remarque : Pour apporter des modifications supplémentaires au journal, mettez à jour les paramètres nécessaires dans la section Paramètres CloudWatch.
  6. Sélectionnez Enregistrer les modifications.

Informations connexes

Comment puis-je détecter les erreurs d'API REST API Gateway dans mes journaux CloudWatch ?

Comment configurer la journalisation des accès pour API Gateway ?

Comment activer CloudWatch Logs pour résoudre les problèmes liés à mon API REST API Gateway ou à mon API WebSocket ?