View a markdown version of this page

AWSSupport-TroubleshootAPIGatewayLambdaInvocation - AWS Systems Manager Runbook-Referenz für Automation

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 Amazon API Gateway Gateway-Integrationen mit AWS Lambda Funktionen in HTTP- und REST-APIs. Das Runbook unterstützt Lambda-Funktionen, die als Integration oder als Autorisierer 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ätsgrenzen verursacht werden, und gibt Empfehlungen.

  • Timeout für die 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. IAM-Autorisierer oder Amazon Cognito Cognito-Autorisierer werden nicht unterstützt.

  • Das Runbook behandelt keine clientseitige Drosselung auf API Gateway.

Weitere Kosten

Mit diesem Runbook werden Metriken von Amazon CloudWatch abgefragt. Für die während der Analyse abgefragten Kennzahlen CloudWatch fallen möglicherweise Standardgebühren für Ihr AWS Konto an. 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, Stufe und Route oder Ressource des API-Gateways vorhanden sind, und bestätigt, dass eine Lambda-Integration oder ein Autorisierer konfiguriert ist.

  • Überprüft, ob API Gateway über ausreichende Berechtigungen zum Aufrufen der Lambda-Funktion verfügt, indem es die Lambda-Ressourcenrichtlinie und die IAM-Rolle mithilfe der IAM-Richtliniensimulation auswertet.

  • Ruft API-Gateway-Metriken (4xxError5xxError, CountLatency, undIntegrationLatency) ab, um API-level Fehler CloudWatch zu erkennen.

  • Ruft Lambda-Metriken (Invocations, Throttles ErrorsDuration, undConcurrentExecutions) von den CloudWatch API-Gateway-Fehlern ab und korreliert sie mit ihnen.

  • Analysiert Lambda-Autorisierungs- und Integrationsantwortformate, wenn API-Fehler weiterhin bestehen, 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: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

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, die das Runbook startet, erfordert die folgenden Aktionen:

  • iam:ListRoles

  • iam:PassRole

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeAutomationStepExecutions

  • ssm:DescribeDocument

  • ssm:GetAutomationExecution

  • ssm:GetDocument

  • ssm:ListDocuments

  • ssm:StartAutomationExecution

Anleitungen

Gehen Sie wie folgt vor, um die Automatisierung zu konfigurieren:

  1. Öffnen Sie AWSSupport-TroubleshootAPIGatewayLambdaInvocationim Systems Manager unter Dokumente.

  2. Wählen Sie Automatisierung ausführen.

  3. Geben Sie für die Eingabeparameter Folgendes ein:

    • AutomationAssumeRole (Fakultativ):

      Der Amazon-Ressourcenname (ARN) der IAM-Rolle, der es Systems Manager Automation ermöglicht, die Aktionen in Ihrem Namen durchzufü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 Fehlerbehebung erforderlich ist.

    • HttpMethod (Erforderlich):

      Die HTTP-Methode für die Ressource oder Route, für die eine Fehlerbehebung erforderlich ist. Zulässige Werte: ANY DELETEHEAD,,OPTIONS,GET,POST,PUT,PATCH,$default.

    • RouteIdOrResourceId (Erforderlich):

      Die Route-ID (HTTP-API) oder Ressourcen-ID (REST-API) mit einer Lambda-Integration oder einem Autorisierer, für die eine Fehlerbehebung erforderlich ist. Zum Beispiel dsyrv84 für eine HTTP-API-Route oder jklob2 fü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 sein yyyy-MM-ddTHH:mm:ss (zum Beispiel1970-01-01T00:00:00). Die Startzeit darf nicht mehr als 30 Tage in der Vergangenheit liegen. Wenn diese Eingabe fehlt oder ungültig ist, wird das Runbook standardmäßig 2 Tage vor der Endzeit angezeigt. Wenn keine Endzeit angegeben ist, wird das Runbook standardmäßig 2 Tage vor der aktuellen Uhrzeit angezeigt.

    • EndTime (Optional):

      Endzeit in UTC, um den Zeitrahmen für die Abfrage zu identifizieren. Das Format muss sein yyyy-MM-ddTHH:mm:ss (zum Beispiel1970-01-01T00:00:00). 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.

  4. Wählen Sie Ausführen.

  5. Die Automatisierung wird initiiert.

  6. Das Dokument führt die folgenden Schritte aus:

    • ValidateResourcesAndInputs:

      Überprüft, ob die API, Stufe und Route oder Ressource des API-Gateways vorhanden sind, und bestätigt, dass eine Lambda-Integration oder ein Lambda-Autorisierer 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 berechtigt ist, die Lambda-Funktion aufzurufen. Generiert Beispielrichtlinien, wenn die Berechtigungen nicht ausreichen.

    • GetAPIMetrics:

      Ruft API-Gateway-Metriken (4xxError5xxErrorCountLatency,, undIntegrationLatency) CloudWatch für den angegebenen Zeitraum ab und identifiziert API-level Fehlermuster.

    • GetLambdaMetrics:

      Ruft Lambda-Metriken (Invocations, Throttles ErrorsDuration, undConcurrentExecutions) von den API Gateway Gateway-Fehlerzeitstempeln ab CloudWatch und korreliert sie mit ihnen.

    • CompareAPIGatewayAndLambdaMetrics:

      Analysiert und korreliert die API Gateway- und Lambda-Metriken, um Drosselungsmuster, Timeout-Szenarien und unbehandelte Lambda-Funktionsfehler zu identifizieren. Ermittelt die Ursache des Aufruf-Problems.

    • AuthorizerAndIntegrationTroubleshooting:

      Wenn API-Fehler weiterhin bestehen, aber keine Lambda-Fehler erkannt werden, analysiert das Lambda-Autorisierungs- und Integrationsantwortformat und gibt Empfehlungen für die richtige Formatierung der Lambda-Funktionsausgabe.

    • CompileResults:

      Erstellt einen zusammenfassenden Bericht über die Ergebnisse, Validierungsprobleme, Genehmigungsprobleme und Empfehlungen zur Fehlerbehebung mit umsetzbaren Anleitungen und relevanten Referenzen.

  7. Nach Abschluss der Ausführung finden Sie im Abschnitt „Ergebnisse“ die detaillierten Ergebnisse der Ausführung.

Referenzen

Systems Manager Automation