Wie aktiviere ich CloudWatch-Protokolle zur Problembehebung meiner API-Gateway-REST-API oder WebSocket-API?

Lesedauer: 4 Minute
0

Ich möchte Fehler mit einer Amazon API Gateway-REST-API oder WebSocket-API debuggen, die ich gerade erstelle.

Kurzbeschreibung

Verwende Amazon CloudWatch Logs, um Probleme mit einer API-Gateway-REST-API oder WebSocket-API zu beheben. Informationen zu den Arten von Protokollformaten findest du unter CloudWatch-Protokollformate für API Gateway.

Hinweis: HTTP-APIs unterstützen nur die Zugriffsprotokollierung. Weitere Informationen findest du unter Konfigurieren der Protokollierung für HTTP-APIs in API Gateway.

In den Protokollen findest du die folgenden Informationen:

Lösung

Eine IAM-Rolle erstellen, um Protokolle an CloudWatch zu senden

Führe die folgenden Schritte aus:

  1. Öffne die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Konsole.
  2. Wähle im Navigationsbereich Rollen aus.
  3. Wähle im Bereich Rollen die Option Rolle erstellen aus.
  4. Gib auf der Seite Rolle erstellen die folgenden Informationen ein:
    Wählen Sie für den Typ Vertrauenswürdige Entität die Option AWS Service aus.
    Wähle für den Anwendungsfall die Option API Gateway und dann das Optionsfeld API Gateway aus.
    Wähle Nächster Schritt aus.
  5. Verwende unter Berechtigungsrichtlinien die von AWS verwaltete Richtlinie AmazonAPIGatewayPushToCloudWatchLogs, die über alle erforderlichen Berechtigungen verfügt.
  6. Wähle Nächster Schritt aus.
  7. Geben Sie unter Benennen, überprüfen und erstellen die folgenden Informationen ein:
    Geben Sie unter Rollenname einen Namen für die Rolle ein.
    (Optional) Bearbeiten Sie für die Rollenbeschreibung die Beschreibung nach Ihren Wünschen.
    (Optional) Füge Tags hinzu.
    Wähle Rolle erstellen.
  8. Wähle im Bereich Rollen die Rolle aus, die du erstellt hast.
  9. Notiere dir im Bereich Zusammenfassung den ARN der Rolle, der im nächsten Abschnitt verwendet werden soll.

Informationen zu Berechtigungen findest du unter Berechtigungen für die CloudWatch-Protokollierung.

Die IAM-Rolle in der API Gateway-Konsole hinzufügen

Führe die folgenden Schritte aus:

  1. Öffne die API-Gateway-Konsole.
  2. Wähle im Bereich APIs den Namen der REST-API oder der WebSocket-API aus, nicht die HTTP-API.
  3. Wähle im Navigationsbereich Einstellungen aus.
  4. Gib unter Einstellungen für den ARN der CloudWatch-Protokollrolle den ARN der IAM-Rolle ein.
    Hinweis: Die CloudWatch-Protokollrolle ist eine AWS-Konfiguration auf Regionsebene, die du mit allen APIs in der Region verwendest.
  5. Wähle Speichern.

Hinweis: Wenn du mehrere APIs in verschiedenen Regionen erstellst, führe die vorherigen Schritte in jeder Region aus.

Die API-Protokollierung aktivieren und die API bereitstellen

Führe die folgenden Schritte aus:

  1. Öffne die API-Gateway-Konsole.
  2. Wähle im Navigationsbereich APIs und dann deine API aus.
  3. Wähle im Navigationsbereich Stufen und dann deine Stufe aus.
  4. Wähle unter Protokolle und Verfolgung die Option Bearbeiten aus.
  5. Wähle unter CloudWatch-Protokolle eine Ebene aus dem Dropdownmenü aus.
    Hinweis: Für vollständige Anfrage- und Antwortprotokolle wählst du die Option Datenverfolgung aus, wobei die Protokollierungsebene auf Fehler- und Informationsprotokolle eingestellt ist. Es hat sich bewährt, die Datenverfolgung für Produktions-APIs nicht zu aktivieren, da bei der Datenverfolgung vertrauliche Daten protokolliert werden können.
  6. Wähle Detaillierte Metriken aus.
  7. Führe unter Benutzerdefinierte Zugriffsprotokollierung die folgenden Schritte aus:
    Wähle Zugriffsprotokollierung aktivieren aus.
    Gib für Zugriffsprotokoll-Ziel-ARN den ARN einer Amazon Data Firehose- oder CloudWatch-Protokollgruppe ein.
    Hinweis: Nur REST-APIs unterstützen den Firehose-ARN.
  8. Gib ein Protokollformat ein.
  9. Klicke auf Änderungen speichern.

Die Einstellungen deiner Protokollierung testen

Hinweis: Sende mit deiner Client-Anwendung oder Tools wie der Postman-App oder wscat (für WebSocket-APIs) eine neue Anfrage an deine API.

Führe die folgenden Schritte aus:

  1. Öffne die CloudWatch-Konsole.
  2. Wähle im Navigationsbereich unter Protokolle die Option Protokollgruppen aus.
  3. Wähle für Protokollgruppen die Protokollgruppe der API aus, die du debuggen möchtest:
    Für REST-APIs hat der Protokollgruppenname das Format API-Gateway-Execution-Logs_apiId/stageName.
    Für WebSocket-APIs hat der Name der Protokollgruppe das Format /aws/apigateway/apiId/stageName.
    Hinweis: Die Zugriffsprotokolle befinden sich in der Protokollgruppe, die du beim Aktivieren der Zugriffsprotokollierung angegeben hast.
  4. Wähle in der Liste Protokollstreams den Protokollstream mit der Uhrzeit des letzten Ereignisses aus, um Meldungen mit den Details deiner Anfrage anzuzeigen.

Ähnliche Informationen

API-Gateway-Zuordnungsvorlage und Referenz für die Zugriffsprotokollierungsvariable

Überwachung der Ausführung der REST-API mit Amazon CloudWatch-Metriken

Ausführung der WebSocket-API mit CloudWatch-Metriken überwachen