

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`
<a name="automation-awssupport-troubleshootapigatewaylambdainvocation"></a>

Le `AWSSupport-TroubleshootAPIGatewayLambdaInvocation` runbook vous aide à résoudre les problèmes liés aux intégrations d'Amazon API Gateway avec les AWS Lambda fonctions des API HTTP et REST. Le runbook prend en charge les fonctions Lambda utilisées en tant qu'intégration ou en tant qu'autorisateur, 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.
+ Régulation de **la fonction Lambda : détecte la régulation** provoquée par les limites de simultanéité et fournit des recommandations.
+ **Délai d'expiration de l'intégration Lambda : analyse les** problèmes de délai d'expiration et suggère des stratégies d'optimisation.
+ Erreurs de **fonction Lambda : identifie les erreurs** de fonction et vous guide dans l'analyse des journaux.
+ **Réponse Lambda malformée :** détecte les problèmes de format de réponse pour les intégrations Lambda et les autorisateurs.
+ **Configuration non valide :** valide la configuration d'API Gateway et de Lambda.

**Limitations**  
Ce runbook présente les limites suivantes :  
Le runbook ne prend pas en charge les scénarios Lambda entre comptes.
Le runbook n'analyse pas les modèles de mappage d'API Gateway, les modèles de regex ou les réponses d'intégration.
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 traite pas de la régulation côté client sur API Gateway.

**Coûts supplémentaires**  
À l'aide de ce runbook, les statistiques d'Amazon CloudWatch sont demandées. CloudWatch Des frais standard peuvent s'appliquer à votre AWS compte pour les statistiques demandées lors de l'analyse. Pour plus d'informations sur les tarifs, consultez [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

Le runbook exécute les étapes de validation et d'analyse suivantes :
+ Valide que l'API API Gateway, l'étape et la route ou la ressource spécifiées existent, et confirme qu'une intégration Lambda 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.
+ Extrait les métriques d'API Gateway (`4xxError``5xxError`,, `Count``Latency`, et`IntegrationLatency`) CloudWatch pour détecter les API-level erreurs.
+ Extrait les métriques Lambda `Invocations` (`Throttles`,, `Errors``Duration`, `ConcurrentExecutions` et) CloudWatch et les met en corrélation avec les erreurs d'API Gateway.
+ Analyse les formats de réponse d'autorisation Lambda et d'intégration lorsque les erreurs d'API persistent mais qu'aucune erreur Lambda n'est détectée.
+ Compile un rapport de synthèse contenant les conclusions, les recommandations et les références pertinentes.

 [Exécuter cette automatisation (console)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAPIGatewayLambdaInvocation) 

**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`

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

1. Ouvrez [AWSSupport-TroubleshootAPIGatewayLambdaInvocation](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayLambdaInvocation/description)dans Systems Manager sous Documents.

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

1. Pour les paramètres d'entrée, entrez ce qui suit :
   + **AutomationAssumeRole (Facultatif) :**

     L'Amazon Resource Name (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) :**

     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 nécessitant un dépannage. Valeurs autorisées :`ANY`,`DELETE`,`HEAD`,`OPTIONS`,`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 une route d'API HTTP ou `jklob2` pour une ressource d'API REST.
   + **StageName (Obligatoire) :**

     Étape sur laquelle l'API est déployée.
   + **StartTime (Facultatif) :**

     Heure de début en UTC pour identifier le délai de recherche. Le format doit être `yyyy-MM-ddTHH:mm:ss` (par exemple,`1970-01-01T00:00:00`). L'heure de début ne doit pas dater de plus de 30 jours. Si cette entrée est manquante ou non valide, le runbook est défini par défaut sur 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 sur 2 jours avant l'heure actuelle.
   + **EndTime (Facultatif) :**

     Heure de fin en UTC pour identifier le délai de recherche. Le format doit être `yyyy-MM-ddTHH:mm:ss` (par exemple,`1970-01-01T00:00:00`). L'heure de fin ne doit pas être plus de 2 jours après l'heure de début. Si cette entrée est manquante ou non valide, le runbook utilise par défaut l'heure actuelle.

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

1. L'automatisation démarre.

1. Le document exécute les étapes suivantes :
   + **`ValidateResourcesAndInputs`**:

     Vérifie que l'API API Gateway, l'étape et la route ou la ressource existent, et confirme qu'une intégration Lambda ou un autorisateur 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 du rôle IAM et évalue la politique de ressources Lambda afin de déterminer si API Gateway est autorisée à appeler 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 (`4xxError``5xxError`,, `Count``Latency`, et`IntegrationLatency`) 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`,, `Errors``Duration`, `ConcurrentExecutions` et) et les met en corrélation avec les CloudWatch horodatages d'erreur d'API Gateway.
   + **`CompareAPIGatewayAndLambdaMetrics`**:

     Analyse et met en corrélation les métriques API Gateway et Lambda pour identifier les modèles de régulation, 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 de sortie approprié de la fonction Lambda.
   + **`CompileResults`**:

     Compile un rapport de synthèse 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.

1. Une fois l'exécution terminée, consultez la section Sorties pour connaître les résultats détaillés de l'exécution.

Systems Manager Automation
+ [Exécuter cette automatisation (console)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayLambdaInvocation/description)
+ [Exécuter une automatisation](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [Configuration d'une automatisation](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support des flux de travail automatisés](https://aws.amazon.com/premiumsupport/technology/saw/)