Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWSSupport-TroubleshootAPIGatewayLambdaInvocation
Description
Das AWSSupport-TroubleshootAPIGatewayLambdaInvocation Runbook hilft Ihnen bei der Fehlerbehebung bei Amazon API Gateway-Integrationen mit Funktionen in HTTP- und REST-APIs. AWS Lambda Das Runbook unterstützt Lambda-Funktionen, die als Integration oder als Authorizer verwendet werden, und deckt die folgenden Anwendungsfälle ab:
Unzureichende oder fehlende Berechtigungen: Identifiziert fehlende Berechtigungen in Lambda-Ressourcenrichtlinien oder IAM-Rollen.
Drosselung der Lambda-Funktion: Erkennt Drosselungen, die durch Parallelitätsbeschränkungen verursacht werden, und gibt Empfehlungen.
Timeout bei der Lambda-Integration: Analysiert Timeout-Probleme und schlägt Optimierungsstrategien vor.
Lambda-Funktionsfehler: Identifiziert Funktionsfehler und führt Sie zur Protokollanalyse.
Falsch formatierte Lambda-Antwort: Erkennt Probleme mit dem Antwortformat für Lambda-Integrationen und -Autorisierer.
Ungültige Konfiguration: Validiert die API-Gateway- und Lambda-Konfiguration.
Einschränkungen
Dieses Runbook hat die folgenden Einschränkungen:
Das Runbook unterstützt keine kontoübergreifenden Lambda-Szenarien.
Das Runbook analysiert keine API Gateway-Zuordnungsvorlagen, Regex-Muster oder Integrationsantworten.
Das Runbook unterstützt nur Lambda-Autorisierer. Es unterstützt keine IAM-Autorisierer oder Amazon Cognito-Autorisierer.
Das Runbook behandelt die clientseitige Drosselung auf dem API Gateway nicht.
Weitere Kosten
Mit diesem Runbook werden Metriken von Amazon abgefragt. CloudWatch Für die während der Analyse abgefragten Metriken können für Ihr AWS Konto CloudWatch Standardgebühren anfallen. Weitere Informationen zur Preisgestaltung finden Sie unter CloudWatch Amazon-Preise.
Funktionsweise
Das Runbook führt die folgenden Validierungs- und Analyseschritte durch:
Überprüft, ob die angegebene API Gateway-API, Phase und Route oder Ressource vorhanden sind, und bestätigt, dass eine Lambda-Integration oder ein Lambda-Authorizer konfiguriert ist.
Überprüft, ob API Gateway über ausreichende Berechtigungen zum Aufrufen der Lambda-Funktion verfügt, indem die Lambda-Ressourcenrichtlinie und die IAM-Rolle mithilfe der IAM-Richtliniensimulation ausgewertet werden.
Ruft die API-Gateway-Metriken (
4xxError,, undIntegrationLatency) von5xxErrorabCountLatency, um Fehler zu erkennen. CloudWatch API-levelRuft Lambda-Metriken (
Invocations,ThrottlesErrorsDuration, undConcurrentExecutions) von den API-Gateway-Fehlern ab CloudWatch und korreliert sie mit ihnen.Analysiert die Antwortformate für den Lambda-Authorizer und die Integration, wenn zwar weiterhin API-Fehler auftreten, aber keine Lambda-Fehler erkannt werden.
Erstellt einen zusammenfassenden Bericht mit Ergebnissen, Empfehlungen und relevanten Referenzen.
Führen Sie diese Automatisierung aus (Konsole)
Art des Dokuments
Automatisierung
Eigentümer
Amazon
Plattformen
/
Erforderliche IAM-Berechtigungen
Der AutomationAssumeRole Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.
apigateway:GETapigatewayv2:GetApiapigatewayv2:GetRouteapigatewayv2:GetStageapigatewayv2:GetAuthorizerapigatewayv2:GetIntegrationlambda:GetFunctionlambda:GetAccountSettingslambda:GetPolicylambda:GetProvisionedConcurrencyConfiglambda:GetFunctionConcurrencyiam:GetRoleiam:GetContextKeysForPrincipalPolicyiam:GetContextKeysForCustomPolicyiam:SimulatePrincipalPolicyiam:SimulateCustomPolicycloudwatch:GetMetricData
Beispiel für eine IAM-Richtlinie:
{ "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": "*" } ] }
Anmerkung
Der IAM-Benutzer oder die IAM-Rolle, der das Runbook startet, erfordert die folgenden Aktionen:
iam:ListRolesiam:PassRolessm:DescribeAutomationExecutionsssm:DescribeAutomationStepExecutionsssm:DescribeDocumentssm:GetAutomationExecutionssm:GetDocumentssm:ListDocumentsssm:StartAutomationExecution
Anleitungen
Folgen Sie diesen Schritten, um die Automatisierung zu konfigurieren:
-
Öffnen Sie AWSSupport-TroubleshootAPIGatewayLambdaInvocation
im Systems Manager unter Dokumente. -
Wählen Sie Automatisierung ausführen.
-
Geben Sie für die Eingabeparameter Folgendes ein:
-
AutomationAssumeRole (Fakultativ):
Der Amazon-Ressourcenname (ARN) der IAM-Rolle, die es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen auszuführen. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation Ihre Berechtigungen.
-
ApiId (Erforderlich):
Die API-ID der API Gateway-API, für die eine Problembehandlung erforderlich ist.
-
HttpMethod (Erforderlich):
Die HTTP-Methode für die Ressource oder Route, für die eine Problembehandlung erforderlich ist. Zulässige Werte:
ANYDELETE,HEAD,OPTIONS,GET,POST,,PUT,PATCH,$default. -
RouteIdOrResourceId (Erforderlich):
Die Route-ID (HTTP-API) oder Ressourcen-ID (REST-API) mit einer Lambda-Integration oder einem Authorizer, für den eine Fehlerbehebung erforderlich ist. Zum Beispiel
dsyrv84für eine HTTP-API-Route oderjklob2für eine REST-API-Ressource. -
StageName (Erforderlich):
Die Phase, in der die API bereitgestellt wird.
-
StartTime (Fakultativ):
Startzeit in UTC, um den abzufragenden Zeitrahmen zu identifizieren. Das Format muss
yyyy-MM-ddTHH:mm:ss(z. B.1970-01-01T00:00:00) sein. Die Startzeit darf nicht mehr als 30 Tage zurückliegen. Wenn diese Eingabe fehlt oder ungültig ist, wird das Runbook standardmäßig 2 Tage vor der Endzeit angezeigt. Wenn keine Endzeit angegeben ist, liegt das Runbook standardmäßig 2 Tage vor der aktuellen Uhrzeit. -
EndTime (Fakultativ):
Endzeit in UTC, um den abzufragenden Zeitrahmen zu identifizieren. Das Format muss
yyyy-MM-ddTHH:mm:ss(z. B.1970-01-01T00:00:00) sein. Die Endzeit darf nicht mehr als 2 Tage nach der Startzeit liegen. Wenn diese Eingabe fehlt oder ungültig ist, verwendet das Runbook standardmäßig die aktuelle Uhrzeit.
-
-
Wählen Sie Ausführen.
-
Die Automatisierung wird initiiert.
-
Das Dokument führt die folgenden Schritte aus:
-
ValidateResourcesAndInputs:Überprüft, ob die API Gateway-API, der Stagingbereich und die Route oder Ressource vorhanden sind, und bestätigt, dass eine Lambda-Integration oder ein Lambda-Authorizer konfiguriert ist. Validiert die Zeitbereichseingaben und extrahiert Lambda-Funktions- und API-Details.
-
CheckAPIGatewayLambdaInvokePermissions:Simuliert die IAM-Rollenberechtigungen und wertet die Lambda-Ressourcenrichtlinie aus, um festzustellen, ob API Gateway autorisiert ist, die Lambda-Funktion aufzurufen. Generiert Beispielrichtlinien, wenn die Berechtigungen nicht ausreichen.
-
GetAPIMetrics:Ruft die API-Gateway-Metriken (
4xxError5xxErrorCountLatency,, undIntegrationLatency) CloudWatch für den angegebenen Zeitraum ab und identifiziert API-level Fehlermuster. -
GetLambdaMetrics:Ruft Lambda-Metriken (
Invocations,ThrottlesErrorsDuration, undConcurrentExecutions) von den API Gateway-Fehlerzeitstempeln ab CloudWatch und korreliert sie mit diesen. -
CompareAPIGatewayAndLambdaMetrics:Analysiert und korreliert die API Gateway- und Lambda-Metriken, um Drosselungsmuster, Timeout-Szenarien und unbehandelte Lambda-Funktionsfehler zu identifizieren. Ermittelt die Grundursache des Aufruffehlers.
-
AuthorizerAndIntegrationTroubleshooting:Wenn weiterhin API-Fehler bestehen, aber keine Lambda-Fehler erkannt werden, analysiert das Lambda-Autorisierungs- und Integrationsantwortformat und gibt Empfehlungen für die korrekte Formatierung der Lambda-Funktionsausgabe.
-
CompileResults:Erstellt einen zusammenfassenden Bericht über die Ergebnisse, Validierungsprobleme, Genehmigungsprobleme und Empfehlungen zur Fehlerbehebung mit umsetzbaren Anleitungen und relevanten Referenzen.
-
-
Nach Abschluss des Vorgangs finden Sie im Abschnitt „Ergebnisse“ die detaillierten Ergebnisse der Ausführung.
Referenzen
Systems Manager Automation