View a markdown version of this page

AWSSupport-TroubleshootAPIGatewayLambdaInvocation - AWS Systems Manager Riferimento al runbook dell’automazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWSSupport-TroubleshootAPIGatewayLambdaInvocation

Description

Il AWSSupport-TroubleshootAPIGatewayLambdaInvocation runbook ti aiuta a risolvere i problemi di integrazione di Amazon API Gateway con funzioni nelle API HTTP e REST. AWS Lambda Il runbook supporta le funzioni Lambda utilizzate come integrazione o come autorizzatore e copre i seguenti casi d'uso:

  • Autorizzazioni insufficienti o mancanti: identifica le autorizzazioni mancanti nelle policy delle risorse Lambda o nei ruoli IAM.

  • Limitazione della funzione Lambda: rileva la limitazione causata dai limiti di concorrenza e fornisce raccomandazioni.

  • Timeout di integrazione Lambda: analizza i problemi di timeout e suggerisce strategie di ottimizzazione.

  • Errori di funzione Lambda: identifica gli errori di funzione e guida l'utente all'analisi dei log.

  • Risposta Lambda malformed: rileva i problemi relativi al formato delle risposte per le integrazioni e gli autorizzatori Lambda.

  • Configurazione non valida: convalida la configurazione di API Gateway e Lambda.

Limitazioni

Questo runbook presenta le seguenti limitazioni:

  • Il runbook non supporta scenari Lambda con più account.

  • Il runbook non analizza i modelli di mappatura di API Gateway, i pattern regex o le risposte di integrazione.

  • Il runbook supporta solo gli autorizzatori Lambda. Non supporta gli autorizzatori IAM o gli autorizzatori Amazon Cognito.

  • Il runbook non copre le limitazioni sul lato client su API Gateway.

Costi aggiuntivi

L'utilizzo di questo runbook richiede le metriche di Amazon. CloudWatch Al tuo AWS account potrebbero essere applicati CloudWatch addebiti standard per le metriche richieste durante l'analisi. Per ulteriori informazioni sui prezzi, consulta Amazon CloudWatch Pricing.

Come funziona

Il runbook esegue le seguenti fasi di convalida e analisi:

  • Verifica l'esistenza dell'API Gateway API Gateway, della fase e del percorso o della risorsa specificati e conferma che è configurata un'integrazione o un autorizzatore Lambda.

  • Verifica se API Gateway dispone di autorizzazioni sufficienti per richiamare la funzione Lambda valutando la politica delle risorse Lambda e il ruolo IAM utilizzando la simulazione delle politiche IAM.

  • Recupera le metriche di API Gateway (4xxError,5xxError, e) da cui rilevare Count Latency gli errori. IntegrationLatency CloudWatch API-level

  • Recupera le metriche Lambda (Invocations,, Throttles ErrorsDuration, eConcurrentExecutions) e le mette in correlazione con gli errori CloudWatch di API Gateway.

  • Analizza i formati di autorizzazione e risposta all'integrazione Lambda quando gli errori API persistono ma non vengono rilevati errori Lambda.

  • Compila un rapporto riassuntivo con risultati, raccomandazioni e riferimenti pertinenti.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

/

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il 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

Policy IAM di esempio:

{ "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": "*" } ] }
Nota

L'utente o il ruolo IAM che avvia il runbook richiede le seguenti azioni:

  • iam:ListRoles

  • iam:PassRole

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeAutomationStepExecutions

  • ssm:DescribeDocument

  • ssm:GetAutomationExecution

  • ssm:GetDocument

  • ssm:ListDocuments

  • ssm:StartAutomationExecution

Istruzioni

Segui questi passaggi per configurare l'automazione:

  1. Apri AWSSupport-TroubleshootAPIGatewayLambdaInvocation in Systems Manager sotto Documenti.

  2. Scegli Esegui automazione.

  3. Per i parametri di input, inserisci quanto segue:

    • AutomationAssumeRole (Facoltativo):

      L'Amazon Resource Name (ARN) del ruolo IAM che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le tue autorizzazioni.

    • ApiId (Obbligatorio):

      L'ID API dell'API API Gateway che richiede la risoluzione dei problemi.

    • HttpMethod (Obbligatorio):

      Il metodo HTTP per la risorsa o la route che richiede la risoluzione dei problemi. Valori consentiti: ANYDELETE,HEAD,OPTIONS,GET,,POST, PUTPATCH,$default.

    • RouteIdOrResourceId (Obbligatorio):

      L'ID di rotta (API HTTP) o l'ID risorsa (API REST) con un'integrazione o un autorizzatore Lambda che richiede la risoluzione dei problemi. Ad esempio, dsyrv84 per una route API HTTP o jklob2 per una risorsa API REST.

    • StageName (Obbligatorio):

      La fase in cui viene distribuita l'API.

    • StartTime (Facoltativo):

      Ora di inizio in UTC per identificare l'intervallo di tempo per l'interrogazione. Il formato deve essere yyyy-MM-ddTHH:mm:ss (ad esempio,1970-01-01T00:00:00). L'ora di inizio non deve essere precedente di più di 30 giorni. Se questo input è mancante o non valido, per impostazione predefinita il runbook è 2 giorni prima dell'ora di fine. Se non viene specificata un'ora di fine, per impostazione predefinita il runbook è 2 giorni prima dell'ora corrente.

    • EndTime (Facoltativo):

      Ora di fine in UTC per identificare l'intervallo di tempo per l'interrogazione. Il formato deve essere yyyy-MM-ddTHH:mm:ss (ad esempio,1970-01-01T00:00:00). L'ora di fine non deve essere superiore a 2 giorni dall'ora di inizio. Se questo input è mancante o non è valido, per impostazione predefinita il runbook è l'ora corrente.

  4. Scegli Esegui.

  5. L'automazione viene avviata.

  6. Il documento esegue i seguenti passaggi:

    • ValidateResourcesAndInputs:

      Verifica l'esistenza dell'API Gateway API Gateway, della fase e del percorso o della risorsa e conferma che è configurata un'integrazione o un autorizzatore Lambda. Convalida gli input dell'intervallo di tempo ed estrae i dettagli della funzione Lambda e dell'API.

    • CheckAPIGatewayLambdaInvokePermissions:

      Simula le autorizzazioni del ruolo IAM e valuta la policy delle risorse Lambda per determinare se API Gateway è autorizzato a richiamare la funzione Lambda. Genera policy di esempio quando le autorizzazioni sono insufficienti.

    • GetAPIMetrics:

      Recupera le metriche di API Gateway (4xxError5xxError, CountLatency, eIntegrationLatency) CloudWatch per l'intervallo di tempo specificato e identifica API-level i modelli di errore.

    • GetLambdaMetrics:

      Recupera le metriche Lambda (Invocations,, Throttles ErrorsDuration, eConcurrentExecutions) e le mette in correlazione con i timestamp di CloudWatch errore di API Gateway.

    • CompareAPIGatewayAndLambdaMetrics:

      Analizza e mette in correlazione le metriche API Gateway e Lambda per identificare i modelli di limitazione, gli scenari di timeout e gli errori di funzione Lambda non gestiti. Determina la causa principale del problema di richiamo.

    • AuthorizerAndIntegrationTroubleshooting:

      Se gli errori API persistono ma non viene rilevato alcun errore Lambda, analizza l'autorizzatore Lambda e il formato di risposta all'integrazione e fornisce consigli per una corretta formattazione dell'output della funzione Lambda.

    • CompileResults:

      Compila un rapporto riassuntivo dei risultati, dei problemi di convalida, dei problemi di autorizzazione e dei consigli per la risoluzione dei problemi con indicazioni utili e riferimenti pertinenti.

  7. Dopo il completamento, consulta la sezione Risultati per i risultati dettagliati dell'esecuzione.

Riferimenti

Systems Manager Automation