J'ai activé la journalisation Amazon CloudWatch pour Amazon API Gateway, mais je n'ai trouvé aucun journal.
Brève description
Vous pouvez utiliser la journalisation CloudWatch pour vous aider à résoudre 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 la journalisation des accès.
Pour la journalisation des exécutions, API Gateway gère les journaux CloudWatch, notamment en créant des groupes de journaux et des 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 API Gateway ne sont pas toutes enregistrées dans les journaux d'exécution. Par exemple, un client effectuant une requête d'API vers un chemin de ressource incorrect de votre API REST renvoie une réponse 403 « Missing Authentication Token ». 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 de journal CloudWatch pour API Gateway.
API Gateway peut ne pas générer de journaux pour :
- Erreurs 413 Request Entity Too Large.
- Erreurs 429 Too Many Requests excessives.
- Erreurs de la série 400 provenant de requêtes envoyées à un domaine personnalisé qui n'inclut aucun 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.
Résolution
Vérifier les autorisations API Gateway pour la journalisation CloudWatch
Pour activer CloudWatch Logs, vous devez autoriser API Gateway à lire et à écrire les journaux de votre compte dans CloudWatch. La stratégie gérée par 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, associez 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 la section Gestion d'AWS STS dans une région AWS.
- Le rôle IAM est activé pour toutes les régions AWS dans lesquelles vous souhaitez activer les journaux CloudWatch.
Pour plus d’informations, consultez la section Autorisations pour la journalisation CloudWatch.
Vérifier les paramètres de journalisation API Gateway
Vérifiez que les paramètres de journalisation des exécutions et des accès CloudWatch sont activé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.
- Ouvrez la console API Gateway.
- Dans le volet de navigation, sélectionnez API.
- Choisissez votre API, puis sélectionnez Étapes.
- Dans Étapes, choisissez votre étape, puis cliquez sur l'onglet ** Journaux/Suivi**.
- Dans Paramètres CloudWatch, vérifiez les points suivants :
Activer CloudWatch Logs est sélectionné.
Niveau de journalisation est défini sur INFO.Remarque : Si le niveau de journalisation est défini sur ERROR, seules les requêtes d'erreur dans API Gateway sont journalisées. Les requêtes d'API réussies ne sont pas journalisées.
Consigner les demandes complètes/données de réponse et Activer les métriques CloudWatch détaillées sont sélectionnés pour les données de journal supplémentaires.
Remarque : Il est recommandé de ne pas activer l'option Consigner les demandes complètes/données de réponse pour les API de production, car cela peut entraîner la journalisation de données sensibles.
- Dans Journalisation des accès personnalisée, vérifiez que l'option Activer la journalisation des accès est sélectionnée.
Vérifier la méthode de journalisation et la remplacer si nécessaire
Par défaut, toutes les ressources d'API utilisent les mêmes configurations que leur étape. Ce paramètre peut être remplacé pour avoir des configurations différentes pour chaque méthode si vous ne souhaitez pas hériter de l’étape.
- Ouvrez la console API Gateway.
- Dans le volet de navigation, sélectionnez API.
- Choisissez votre API, puis sélectionnez Étapes.
- Dans Étapes, développez le nom de votre étape. Puis, choisissez votre méthode HTTP. Par exemple, GET.
- Dans Paramètres, sélectionnez Remplacer pour cette méthode.
- Dans Paramètres CloudWatch, apportez des modifications de journal supplémentaires pour votre cas d'utilisation si nécessaire, puis sélectionnez Enregistrer les modifications.
Pour plus d'informations, consultez la section Configuration de la journalisation CloudWatch pour une API REST dans API Gateway.
Informations connexes
Comment puis-je détecter les erreurs d'API REST API Gateway dans mes journaux CloudWatch ?
Comment puis-je configurer la journalisation des accès pour API Gateway ?
Comment puis-je activer CloudWatch Logs afin de résoudre les problèmes liés à mon API REST d’API Gateway ou à mon API WebSocket ?