Comment puis-je utiliser les journaux d'Amazon API Gateway pour résoudre des problèmes ?

Lecture de 4 minute(s)
0

Je souhaite utiliser les journaux d'Amazon API Gateway pour résoudre les problèmes d'API.

Brève description

Pour résoudre les problèmes liés à une API REST ou une API WebSocket d'API Gateway, activez la journalisation des exécutions et la journalisation des accès dans Amazon CloudWatch Logs. Assurez-vous d'avoir associé toutes les autorisations nécessaires au rôle AWS Identity and Access Management (IAM) d'API Gateway. Pour obtenir des instructions, consultez Comment activer CloudWatch Logs pour le dépannage de mon API REST ou API WebSocket de mon API Gateway ?

Remarque : les API HTTP prennent actuellement en charge la journalisation des accès uniquement. La configuration de la journalisation est différente pour ces API. Pour plus d'informations, consultez Configuration de la journalisation pour une API HTTP.

Solution

Une fois la journalisation activée, API Gateway crée automatiquement un groupe de journaux CloudWatch nommé API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}. Pour plus d'informations, consultez la rubrique Formats des journaux CloudWatch pour la passerelle API.

Mécanismes d'autorisation AWS Lambda

Si les mécanismes d'autorisations Lambda sont activés pour votre API, les journaux indiquent lorsque la demande est autorisée et incluent les identifiants du mécanisme d'autorisation et de la demande.

Exemples de journaux autorisés :

Starting authorizer: 62mgrc for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0
Successfully completed authorizer execution

Exemples de journaux non autorisés :

Starting authorizer: 62mgrc for request: fd443056-60d0-425f-874e-e93e5d61351e
Unauthorized request: fd443056-60d0-425f-874e-e93e5d61351e

Plans d'utilisation

Après la journalisation du mécanisme d'autorisation Lambda, API Gateway vérifie le plan d'utilisation de la demande d'API. Si vous n'avez pas configuré de plan d'utilisation, les demandes d'API ne sont pas prises en compte dans les limitations.

Exemples de journaux de plans d'utilisation :

Verifying Usage Plan for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0. API Key: API Stage: <api_id>/<stage>
API Key authorized because method 'GET /' does not require API Key. Request will not contribute to throttle or quota limits
Usage Plan check succeeded for API Key and API Stage <api_id>/<stage>

Si vous avez configuré des API avec des clés d'API, mais que l'en-tête X-API-Key est manquant, les journaux renvoient une erreur similaire à la suivante :

API Key not authorized because method 'GET /' requires API Key and API 
Key is not associated with a Usage Plan for API Stage 
<api_id>/<stage>: API Key was required but not present

Si vous avez ajouté la bonne clé d'API dans l'en-tête, mais que la demande est limitée, les journaux renvoient une erreur similaire à la suivante :

API Key **********************************FGQes7 exceeded throttle limit for API Stage <api_id>/<stage>: Key throttle limit exceeded for Usage Plan ID iwuzkt. Limit: 5.00 Burst: 0
Method completed with status: 429

Types de journaux de demandes

Remarque : tous les types de journaux de demandes nécessitent l'activation de l'option Log full requests/responses data (Consigner toutes les demandes/données des réponses) dans les journaux d'exécution.

Journaux de demandes de méthodes

Les journaux de demandes de méthode incluent les informations détaillées reçues par une demande d'API, notamment le chemin d'accès de la demande, le paramètre de requête, ainsi que l'en-tête et le corps de la demande.

Journaux de demandes de points de terminaison

Les journaux de demandes de point de terminaison incluent les informations détaillées reçues par une demande d'API, notamment l'URI, ainsi que les en-têtes et le corps de la demande.

Les données intégrées dans les demandes de point de terminaison sont envoyées à votre intégration du backend pour un traitement ultérieur.

Journaux de réponse de points de terminaison

Les journaux de réponse de points de terminaison incluent les données renvoyées par l'intégration du backend, notamment le code de statut, le corps, les en-têtes et la latence de l'intégration.

Journaux de réponses de méthodes

Les journaux de réponses de méthodes incluent les en-têtes et le corps envoyés au client après la transformation.

Important : API Gateway limite les événements du journal à 1 024 octets. Les événements du journal supérieurs à 1 024 octets, tels que les corps de demande et de réponse, sont tronqués par API Gateway avant d'être envoyés aux journaux CloudWatch.


Informations connexes

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

Configuration de la journalisation CloudWatch pour une API REST dans API Gateway

Surveillance de l'exécution de l'API REST avec les métriques Amazon CloudWatch

Surveillance de l'exécution d'API WebSocket à l'aide des métriques CloudWatch

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an