AWSSupport-TroubleshootAPIGatewayHttpErrors - AWS Systems Manager Référence du manuel d'automatisation

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.

AWSSupport-TroubleshootAPIGatewayHttpErrors

Description

Le AWSSupport-TroubleshootAPIGatewayHttpErrorsrunbook permet de résoudre les erreurs 5XX/4XX lors de l'appel d'une API REST Amazon API Gateway déployée en analysant les journaux d'exécution des and/or accès et en analysant les erreurs afin de fournir des étapes de correction via les articles et la documentation de Re:Post. AWS

Important

Ce runbook présente les limites suivantes :

  • La journalisation doit être activée. Consultez Configurer la journalisation des CloudWatch API Amazon à l'aide de la console API Gateway.

  • Les journaux doivent avoir été activés avant que les erreurs ne se produisent. La capture et l'analyse des journaux ne peuvent pas être effectuées rétrospectivement.

  • Erreurs couvertes : 500, 502, 503, 504, 401, 403, 429.

  • Seul le protocole REST APIs est pris en charge. WebSocket et HTTP (v2) ne sont pas couverts par ce runbook.

Important

L'utilisation de ce runbook peut entraîner des frais supplémentaires sur votre AWS compte pour les Amazon CloudWatch Logs capturés par votre API REST et pour les CloudWatch Logs Insights utilisés dans l'analyse. Consultez les CloudWatch tarifs d'Amazon pour plus de détails sur les frais qui peuvent être encourus. Si l'aws:deletestackétape échoue, accédez à la CloudFormation console pour supprimer manuellement la pile. Le nom de la pile créée par ce runbook commence AWSSupport-TroubleshootAPIGatewayHttpErrors par. Pour plus d'informations sur la suppression de CloudFormation piles, voir Supprimer une pile dans le Guide de l' AWS CloudFormation utilisateur.

Fonctionnement

Le runbook exécute les étapes de validation et d'analyse suivantes :

  • Vérifie que l'API REST spécifiée existe et que vous disposez des autorisations nécessaires.

  • Valide que l'étape spécifiée existe dans l'API.

  • Valide que le chemin de ressource spécifié existe dans l'API.

  • Valide que la méthode HTTP spécifiée existe pour la ressource.

  • Analyse les CloudWatch journaux pour les paramètres et la plage de temps spécifiés afin d'identifier les erreurs et de fournir des recommandations de correction.

Exécuter cette automatisation (console)

Type de document

 Automatisation

Propriétaire

Amazon

Plateformes

/

Autorisations IAM requises

Le AutomationAssumeRole paramètre nécessite les actions suivantes pour utiliser correctement le runbook.

  • apigateway:GET

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogGroups

  • logs:DescribeLogStreams

  • logs:PutLogEvents

  • logs:StartQuery

  • logs:GetQueryResults

Exemple de politique IAM :

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

Instructions

Pour configurer l'automatisation, procédez comme suit :

  1. Accédez AWSSupport-TroubleshootAPIGatewayHttpErrorsà Systems Manager sous Documents.

  2. Sélectionnez Execute automation (Exécuter l'automatisation).

  3. Pour les paramètres d'entrée, entrez ce qui suit :

    • AutomationAssumeRole (Facultatif) :

      • Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle Gestion des identités et des accès AWS (IAM) qui permet à SSM Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, SSM Automation utilise les autorisations de l'utilisateur qui lance ce runbook.

      • Type : AWS::IAM::Role::Arn

    • RestApiId (Obligatoire) :

      • Description : (Obligatoire) L'ID de l'API qui nécessite un dépannage. Il doit s'agir d'une chaîne alphanumérique de 10 caractères.

      • Type : String

      • Modèle autorisé : ^[a-zA-Z0-9]{10}$

    • StageName (Obligatoire) :

      • Description : (Obligatoire) Nom de l'étape déployée. Il doit comporter de 1 à 128 caractères contenant des lettres, des chiffres, des traits de soulignement ou des traits d'union.

      • Type : String

      • Modèle autorisé : ^[a-zA-Z0-9_\\-]{1,128}$

    • ResourcePath (Facultatif) :

      • Description : (Facultatif) Le chemin de ressource pour lequel la méthode est configurée. Exemples : /, /store/items, /{resource}.

      • Type : String

      • Valeur par défaut : /

    • HttpMethod (Facultatif) :

      • Description : (Facultatif) Méthode pour le chemin de ressource configuré.

      • Type : String

      • Valeurs autorisées : [ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH]

      • Valeur par défaut : GET

    • StartTime (Facultatif) :

      • Description : (Facultatif) Date et heure de début de l'interrogation des CloudWatch journaux. Format : yyyy-MM-ddTHH:mm:ss dans le fuseau horaire UTC. Si ce n'est pas spécifié, la valeur par défaut est 3 jours avant l'heure actuelle.

      • Type : String

      • Modèle autorisé : ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Valeur par défaut : ""

    • EndTime (Facultatif) :

      • Description : (Facultatif) Date et heure de fin de consultation des CloudWatch journaux. Format : yyyy-MM-ddTHH:mm:ss dans le fuseau horaire UTC. Si ce n'est pas spécifié, la valeur par défaut est l'heure actuelle.

      • Type : String

      • Modèle autorisé : ^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$

      • Valeur par défaut : ""

    • AccessLogs (Facultatif) :

      • Description : (Facultatif) Indique si les journaux d'accès doivent être analysés.

      • Type : Boolean

      • Valeurs autorisées : [true, false]

      • Valeur par défaut : false

    • RequestId (Facultatif) :

      • Description : (Facultatif) L'ID de la demande pour laquelle une erreur a été observée. Il doit s'agir d'un format UUID valide.

      • Type : String

      • Modèle autorisé : ^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

      • Valeur par défaut : ""

  4. Sélectionnez Exécuter.

  5. L'automatisation démarre.

  6. Le document exécute les étapes suivantes :

    • CheckApiExists:

      Vérifie que l'API REST fournie existe et que vous disposez des autorisations nécessaires pour y accéder.

    • CheckStageExists:

      Vérifie que le nom d'étape fourni existe dans l'API donnée et récupère les informations du groupe de journaux d'accès.

    • CheckResourceExists:

      Vérifie que le chemin de ressource fourni existe dans l'API et récupère l'ID de ressource.

    • CheckMethodExists:

      Valide que la méthode HTTP fournie existe pour la ressource spécifiée.

    • AnalyseLogs:

      Recherche les journaux à l'aide des paramètres fournis et renvoie des recommandations en fonction des erreurs détectées. Cette étape analyse à la fois les journaux d'exécution et d'accès (s'ils sont activés) pour identifier les erreurs 4XX et 5XX et fournit des conseils de correction spécifiques.

  7. Une fois l'opération terminée, consultez la section Résultats pour obtenir les résultats détaillés de l'exécution, y compris l'analyse des erreurs et les recommandations de correction.

Références

Systems Manager Automation