Comment puis-je résoudre les problèmes liés aux journaux CloudWatch manquants pour les API REST API Passerelle ?

Lecture de 5 minute(s)
0

J'ai activé la journalisation Amazon CloudWatch pour Amazon API Gateway, mais je n'ai trouvé aucun journal. Comment puis-je obtenir les journaux CloudWatch pour résoudre les problèmes liés aux API REST API Passerelle ?

Brève description

Vous pouvez utiliser la journalisation CloudWatch pour aider à déboguer les problèmes liés à l'exécution des requêtes ou à l'accès client à votre API. La journalisation CloudWatch inclut la journalisation des exécutions et des accès.

Pour la journalisation d'exécution, la passerelle API gère les journaux CloudWatch, y compris la création de groupes de journaux et de flux de journaux. Pour la journalisation des accès, vous pouvez créer vos propres groupes de journaux ou choisir des groupes de journaux existants.

Les erreurs côté client rejetées par la passerelle API ne sont pas toutes enregistrées dans les journaux d'exécution. Par exemple, un client qui envoie une demande d'API à un chemin de ressource incorrect de votre API REST renvoie une réponse 403 « Jeton d'authentification manquant ». Ce type de réponse n'est pas enregistré dans les journaux d'exécution. Utilisez la journalisation des accès CloudWatch pour résoudre les erreurs côté client.

Pour plus d'informations, consultez la section Formats des journaux CloudWatch pour la passerelle API.

La passerelle API peut ne pas générer de journaux pour :

  • 413 Erreurs d'entité de requête trop grande.
  • Erreurs 429 Trop de requêtes excessives.
  • Erreurs de la série 400 provenant de demandes envoyées à un domaine personnalisé qui n'a pas de mappage d'API.
  • Erreurs de la série 500 causées par des défaillances internes.

Pour plus d'informations, consultez la section Surveillance des API REST.

Solution

Vérifiez les autorisations de la passerelle API pour la journalisation CloudWatch

Pour activer CloudWatch Logs, vous devez accorder à la passerelle API l'autorisation de lire et d'écrire des journaux sur CloudWatch pour votre compte. La stratégie gérée AmazonAPIGatewayPushToCloudWatchLogs dispose des autorisations requises.

Créez un rôle AWS Identity and Access Management (IAM) avec apigateway.amazonaws.com comme entité de confiance. Ensuite, attachez la stratégie suivante au rôle IAM et définissez l'ARN du rôle IAM sur la propriété cloudWatchRoleArn de votre compte AWS :

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

Assurez-vous que :

  • AWS Security Token Service (AWS STS) est activé pour votre région AWS. Pour plus d'informations, consultez Gestion de AWS STS dans une région AWS.
  • Le rôle IAM est activé pour toutes les régions AWS où vous souhaitez activer les journaux CloudWatch.

Pour plus d'informations, consultez Autorisations pour la journalisation CloudWatch.

Vérifier les paramètres de journalisation de la passerelle API

Vérifiez que les paramètres d'exécution ou de journalisation des accès CloudWatch sont activés pour la passerelle API.

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

1.    Ouvrez la console API Gateway.

2.    Dans le volet de navigation, sélectionnez APIs (API).

3.    Choisissez votre API, puis Stages.

4.    Dans Stages, choisissez votre stage, puis cliquez sur l'onglet Logs/Tracing.

5.    Dans CloudWatch Settings, vérifiez les points suivants :
L'option Activer CloudWatch Logs est sélectionnée. Le niveau de journalisation est défini sur INFO. Remarque : si le niveau de journalisation est défini sur ERROR, seules les demandes d'erreur dans la passerelle API sont enregistrées. Les demandes d'API réussies ne sont pas enregistrées.
Consigner les données complètes des demandes/réponses et Activer les métriques CloudWatch détaillées sont sélectionnées pour les données de journal supplémentaires. Remarque : il est recommandé de ne pas activer l'option Consigner les données complètes des demandes/réponses pour les API de production, ce qui peut entraîner l'enregistrement de données sensibles.

6.    Dans Journalisation des accès personnalisés, vérifiez que l'option Activer la journalisation des accès est sélectionnée.

Vérifiez la méthode d'enregistrement et remplacez-la si nécessaire

Par défaut, toutes les ressources d'API utilisent les mêmes configurations que leur stage. Ce paramètre peut être remplacé pour avoir des configurations différentes pour chaque méthode si vous ne souhaitez pas hériter de la scène.

1.    Ouvrez la console API Gateway.

2.    Dans le volet de navigation, sélectionnez APIs (API).

3.    Choisissez votre API, puis Stages.

4.    Dans Stages, développez le nom de votre scène, puis choisissez votre méthode HTTP. Par exemple, GET.

5.    Dans Settings, choisissez Override pour cette méthode.

6.    Dans les paramètres CloudWatch, apportez toute modification de journal supplémentaire pour votre cas d'utilisation si nécessaire, puis choisissez Save Changes.

Pour plus d'informations, consultez Configuration de la journalisation CloudWatch pour une API REST dans las passerelle API.


Informations connexes

Comment trouver les erreurs d'API REST API Passerelle dans mes journaux CloudWatch Logs ?

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

Comment activer CloudWatch Logs pour dépanner l'API REST ou l'API WebSocket de ma passerelle API ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans