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 AWS Lambda funzioni nelle API HTTP e REST. Il runbook supporta le funzioni Lambda utilizzate come integrazione o come autorizzazione 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 consigli.
Timeout di integrazione Lambda: analizza i problemi di timeout e suggerisce strategie di ottimizzazione.
Errori della funzione Lambda: identifica gli errori di funzione e guida l'utente all'analisi dei log.
Risposta Lambda non valida: rileva i problemi relativi al formato di risposta per le integrazioni e gli autorizzatori Lambda.
Configurazione non valida: convalida la configurazione API Gateway e Lambda.
Limitazioni
Questo runbook presenta le seguenti limitazioni:
Il runbook non supporta scenari Lambda tra account.
Il runbook non analizza i modelli di mappatura dell'API Gateway, i modelli 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 la limitazione 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 la pagina CloudWatch dei prezzi di Amazon
Come funziona
Il runbook esegue le seguenti fasi di convalida e analisi:
Verifica l'esistenza dell'API, dello stage e della route o della risorsa API Gateway specificati e conferma che sia configurata un'integrazione o un'autorizzazione Lambda.
Verifica se API Gateway dispone di autorizzazioni sufficienti per richiamare la funzione Lambda valutando la policy delle risorse Lambda e il ruolo IAM utilizzando la simulazione della policy IAM.
Recupera le metriche dell'API Gateway (
4xxError5xxError,Count,Latency, eIntegrationLatency) da CloudWatch cui rilevare API-level gli errori.Recupera le metriche Lambda
Invocations(Throttles,,ErrorsDuration,ConcurrentExecutionse) CloudWatch e le correla con gli errori dell'API Gateway.Analizza i formati di autorizzazione Lambda e di risposta di integrazione quando gli errori API persistono ma non vengono rilevati errori Lambda.
Compila un rapporto di riepilogo con risultati, consigli 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:GETapigatewayv2:GetApiapigatewayv2:GetRouteapigatewayv2:GetStageapigatewayv2:GetAuthorizerapigatewayv2:GetIntegrationlambda:GetFunctionlambda:GetAccountSettingslambda:GetPolicylambda:GetProvisionedConcurrencyConfiglambda:GetFunctionConcurrencyiam:GetRoleiam:GetContextKeysForPrincipalPolicyiam:GetContextKeysForCustomPolicyiam:SimulatePrincipalPolicyiam:SimulateCustomPolicycloudwatch: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:ListRolesiam:PassRolessm:DescribeAutomationExecutionsssm:DescribeAutomationStepExecutionsssm:DescribeDocumentssm:GetAutomationExecutionssm:GetDocumentssm:ListDocumentsssm:StartAutomationExecution
Istruzioni
Segui questi passaggi per configurare l'automazione:
-
Aprire AWSSupport-TroubleshootAPIGatewayLambdaInvocation
in Systems Manager in Documenti. -
Scegli Esegui automazione.
-
Per i parametri di input, immettete 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 autorizzazioni dell'utente.
-
ApiId (Obbligatorio):
L'ID API dell'API Gateway API 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,PUT,PATCH,$default. -
RouteIdOrResourceId (Obbligatorio):
Route ID (API HTTP) o Resource ID (API REST) con un'integrazione o un'autorizzazione Lambda che richiede la risoluzione dei problemi. Ad esempio,
dsyrv84per una route API HTTP ojklob2per 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 in cui eseguire la query. Il formato deve essere
yyyy-MM-ddTHH:mm:ss(ad esempio,1970-01-01T00:00:00). L'ora di inizio non deve essere anteriore a più di 30 giorni. Se questo input è mancante o non valido, il runbook ha come impostazione predefinita 2 giorni prima dell'ora di fine. Se non viene specificata alcuna 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 la richiesta. 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, il runbook utilizza per impostazione predefinita l'ora corrente.
-
-
Scegli Esegui.
-
L'automazione viene avviata.
-
Il documento esegue le seguenti operazioni:
-
ValidateResourcesAndInputs:Verifica che l'API, lo stage e la route o la risorsa API Gateway esistano e conferma che sia configurata un'integrazione o un'autorizzazione Lambda. Convalida gli input dell'intervallo di tempo ed estrae i dettagli della funzione Lambda e dell'API.
-
CheckAPIGatewayLambdaInvokePermissions:Simula le autorizzazioni dei ruoli 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 dell'API Gateway (
4xxError5xxError,Count,Latency, eIntegrationLatency) CloudWatch per l'intervallo di tempo specificato e identifica i API-level modelli di errore. -
GetLambdaMetrics:Recupera le metriche Lambda
Invocations(Throttles,,ErrorsDuration,ConcurrentExecutionse) e le correla con i CloudWatch timestamp di errore dell'API Gateway. -
CompareAPIGatewayAndLambdaMetrics:Analizza e correla le metriche API Gateway e Lambda per identificare modelli di limitazione, scenari di timeout ed errori delle funzioni Lambda non gestiti. Determina la causa principale del problema di invocazione.
-
AuthorizerAndIntegrationTroubleshooting:Quando gli errori dell'API persistono ma non vengono rilevati errori Lambda, analizza l'autorizzazione Lambda e il formato di risposta di integrazione e fornisce consigli per la corretta formattazione dell'output della funzione Lambda.
-
CompileResults:Compila un rapporto riassuntivo dei risultati, dei problemi di convalida, dei problemi di autorizzazione e delle raccomandazioni per la risoluzione dei problemi con indicazioni pratiche e riferimenti pertinenti.
-
-
Al termine, consulta la sezione Output per i risultati dettagliati dell'esecuzione.
Riferimenti
Systems Manager Automation