View a markdown version of this page

AWSSupport-TroubleshootAPIGatewayLambdaInvocation - AWS Systems Manager Référence du dossier d’exploitation Automation

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-TroubleshootAPIGatewayLambdaInvocation

Description

Le AWSSupport-TroubleshootAPIGatewayLambdaInvocation runbook vous aide à résoudre les problèmes liés aux intégrations d'Amazon API Gateway grâce aux AWS Lambda fonctions des API HTTP et REST. Le runbook prend en charge les fonctions Lambda utilisées comme intégration ou comme autorisation, et couvre les cas d'utilisation suivants :

  • Autorisations insuffisantes ou manquantes : identifie les autorisations manquantes dans les politiques de ressources Lambda ou les rôles IAM.

  • Limitation de la fonction Lambda : détecte la limitation causée par les limites de simultanéité et fournit des recommandations.

  • Délai d'intégration Lambda : analyse les problèmes de temporisation et suggère des stratégies d'optimisation.

  • Erreurs de fonction Lambda : identifie les erreurs de fonction et vous guide vers l'analyse des journaux.

  • Réponse Lambda mal formée : détecte les problèmes de format de réponse pour les intégrations et les autorisateurs Lambda.

  • Configuration non valide : valide la configuration API Gateway et Lambda.

Limitations

Ce runbook présente les limites suivantes :

  • Le runbook ne prend pas en charge les scénarios Lambda multicomptes.

  • Le runbook n'analyse pas les modèles de mappage, les modèles d'expressions régulières ou les réponses d'intégration d'API Gateway.

  • Le runbook ne prend en charge que les autorisateurs Lambda. Il ne prend pas en charge les autorisateurs IAM ni les autorisateurs Amazon Cognito.

  • Le runbook ne couvre pas la limitation côté client sur API Gateway.

Coûts supplémentaires

L'utilisation de ce runbook permet d'interroger les métriques d'Amazon CloudWatch. CloudWatch Des frais standard peuvent s'appliquer à votre AWS compte pour les statistiques demandées lors de l'analyse. Pour plus d'informations sur la tarification, consultez la page CloudWatch Tarification Amazon.

Comment ça marche

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

  • Valide l'existence de l'API API Gateway, de l'étape, de la route ou de la ressource spécifiée et confirme qu'une intégration ou un autorisateur Lambda est configuré.

  • Vérifie si API Gateway dispose des autorisations suffisantes pour appeler la fonction Lambda en évaluant la politique de ressources Lambda et le rôle IAM à l'aide d'une simulation de politique IAM.

  • Récupère les métriques d'API Gateway (4xxError5xxErrorCount,Latency, etIntegrationLatency) CloudWatch pour détecter les API-level erreurs.

  • Récupère les métriques Lambda (Invocations,Throttles, ErrorsDuration, etConcurrentExecutions) et les met en corrélation avec les erreurs d'API Gateway. CloudWatch

  • Analyse les formats d'autorisation Lambda et de réponse d'intégration lorsque des erreurs d'API persistent mais qu'aucune erreur Lambda n'est détectée.

  • Compile un rapport de synthèse avec les résultats, les recommandations et les références pertinentes.

Exécutez 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

  • apigatewayv2:GetApi

  • apigatewayv2:GetRoute

  • apigatewayv2:GetStage

  • apigatewayv2:GetAuthorizer

  • apigatewayv2:GetIntegration

  • lambda:GetFunction

  • lambda:GetAccountSettings

  • lambda:GetPolicy

  • lambda:GetProvisionedConcurrencyConfig

  • lambda:GetFunctionConcurrency

  • iam:GetRole

  • iam:GetContextKeysForPrincipalPolicy

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulatePrincipalPolicy

  • iam:SimulateCustomPolicy

  • cloudwatch:GetMetricData

Exemple de politique IAM :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "APIGatewayReadAccess", "Effect": "Allow", "Action": [ "apigateway:GET", "apigatewayv2:GetApi", "apigatewayv2:GetRoute", "apigatewayv2:GetStage", "apigatewayv2:GetAuthorizer", "apigatewayv2:GetIntegration" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*", "arn:aws:apigateway:*::/apis/*" ] }, { "Sid": "LambdaReadAccess", "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetPolicy", "lambda:GetProvisionedConcurrencyConfig", "lambda:GetFunctionConcurrency", "lambda:GetAccountSettings" ], "Resource": "*" }, { "Sid": "IAMReadAndSimulate", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetContextKeysForPrincipalPolicy", "iam:GetContextKeysForCustomPolicy", "iam:SimulatePrincipalPolicy", "iam:SimulateCustomPolicy" ], "Resource": "*" }, { "Sid": "CloudWatchMetricsRead", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData" ], "Resource": "*" } ] }
Note

L'utilisateur ou le rôle IAM qui démarre le runbook nécessite les actions suivantes :

  • iam:ListRoles

  • iam:PassRole

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeAutomationStepExecutions

  • ssm:DescribeDocument

  • ssm:GetAutomationExecution

  • ssm:GetDocument

  • ssm:ListDocuments

  • ssm:StartAutomationExecution

Instructions

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

  1. Ouvrez AWSSupport-TroubleshootAPIGatewayLambdaInvocation dans le Gestionnaire de systèmes sous Documents.

  2. Choisissez Execute automation (Exécuter l’automatisation).

  3. Pour les paramètres d'entrée, entrez les informations suivantes :

    • AutomationAssumeRole (Facultatif) :

      Le nom de ressource Amazon (ARN) du rôle IAM qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise vos autorisations.

    • ApiId (Obligatoire) :

      L'ID d'API de l'API API Gateway qui nécessite un dépannage.

    • HttpMethod (Obligatoire) :

      Méthode HTTP pour la ressource ou l'itinéraire qui nécessite un dépannage. Valeurs autorisées :ANY,DELETE, HEADOPTIONS,GET,POST,PUT,PATCH,$default.

    • RouteIdOrResourceId (Obligatoire) :

      L'ID de route (API HTTP) ou l'ID de ressource (API REST) avec une intégration Lambda ou un autorisateur nécessitant un dépannage. Par exemple, dsyrv84 pour un itinéraire d'API HTTP ou jklob2 pour une ressource d'API REST.

    • StageName (Obligatoire) :

      Étape vers laquelle l'API est déployée.

    • StartTime (Facultatif) :

      Heure de début en UTC pour identifier la période sur laquelle effectuer la requête. Le format doit être yyyy-MM-ddTHH:mm:ss (par exemple,1970-01-01T00:00:00). L'heure de début ne doit pas être antérieure de plus de 30 jours. Si cette entrée est manquante ou non valide, le runbook indique par défaut 2 jours avant l'heure de fin. Si aucune heure de fin n'est spécifiée, le runbook est défini par défaut 2 jours avant l'heure actuelle.

    • EndTime (Facultatif) :

      Heure de fin en UTC pour identifier la période sur laquelle effectuer la requête. Le format doit être yyyy-MM-ddTHH:mm:ss (par exemple,1970-01-01T00:00:00). L'heure de fin ne doit pas être supérieure à 2 jours après l'heure de début. Si cette entrée est manquante ou non valide, le runbook prend par défaut l'heure actuelle.

  4. Sélectionnez Execute (Exécuter).

  5. L'automatisation démarre.

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

    • ValidateResourcesAndInputs:

      Vérifie que l'API, l'étape, la route ou la ressource API Gateway existent et confirme qu'une intégration ou un autorisateur Lambda est configuré. Valide les entrées de plage de temps et extrait les détails de la fonction Lambda et de l'API.

    • CheckAPIGatewayLambdaInvokePermissions:

      Simule les autorisations de rôle IAM et évalue la politique de ressources Lambda pour déterminer si API Gateway est autorisée à invoquer la fonction Lambda. Génère des exemples de politiques lorsque les autorisations sont insuffisantes.

    • GetAPIMetrics:

      Récupère les métriques d'API Gateway (4xxError5xxError,Count,Latency, etIntegrationLatency) CloudWatch pour la plage de temps spécifiée et identifie les modèles API-level d'erreur.

    • GetLambdaMetrics:

      Extrait les métriques Lambda (Invocations,, Throttles ErrorsDuration, etConcurrentExecutions) et les met en corrélation avec les CloudWatch horodatages des erreurs d'API Gateway.

    • CompareAPIGatewayAndLambdaMetrics:

      Analyse et met en corrélation les métriques API Gateway et Lambda pour identifier les modèles de limitation, les scénarios de temporisation et les erreurs de fonction Lambda non gérées. Détermine la cause première du problème d'invocation.

    • AuthorizerAndIntegrationTroubleshooting:

      Lorsque les erreurs d'API persistent mais qu'aucune erreur Lambda n'est détectée, analyse l'autorisateur Lambda et le format de réponse d'intégration, et fournit des recommandations pour un formatage correct des sorties de la fonction Lambda.

    • CompileResults:

      Compile un rapport récapitulatif des résultats, des problèmes de validation, des problèmes d'autorisation et des recommandations de dépannage avec des conseils pratiques et des références pertinentes.

  7. Une fois l'exécution terminée, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution.

Références

Systems Manager Automation