Wie kann ich Protokolle von Amazon API Gateway für die Fehlerbehebung verwenden?

Lesedauer: 3 Minute
0

Ich möchte Protokolle von Amazon API Gateway zur Behebung von API-Problemen verwenden.

Kurzbeschreibung

Zur Fehlerbehebung bei einer REST-API oder WebSocket-API von API Gateway aktivieren Sie die Ausführungsprotokollierung und die Zugriffsprotokollierung mit Amazon CloudWatch Logs. Vergewissern Sie sich, dass Sie der API-Gateway-Rolle „AWS Identity and Access Management (IAM)“ alle erforderlichen Berechtigungen angefügt haben. Anweisungen finden Sie unter How do I turn on CloudWatch Logs for troubleshooting my API Gateway REST API or WebSocket API? (Wie aktiviere ich CloudWatch Logs für die Fehlerbehebung bei meiner REST-API oder WebSocket-API von API Gateway?).

Hinweis: HTTP-APIs unterstützen derzeit nur die Zugriffsprotokollierung, und die Einrichtung der Protokollierung ist für diese APIs unterschiedlich. Weitere Informationen finden Sie unter Protokollierung für eine HTTP-API konfigurieren.

Lösung

Nachdem Sie die Protokollierung aktiviert haben, erstellt API Gateway automatisch eine CloudWatch-Protokollgruppe mit dem Namen API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}. Weitere Informationen finden Sie unter CloudWatch-Protokollformate für API Gateway.

AWS-Lambda-Genehmiger

Wenn Sie Lambda-Genehmiger für Ihre API aktiviert haben, geben die Protokolle an, ob die Anforderung autorisiert ist, und enthalten die Autorisierungs- und Anforderungs-IDs.

Beispiel für autorisierte Protokolle:

Starting authorizer: 62mgrc for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0
Successfully completed authorizer execution

Beispiel für nicht autorisierte Protokolle:

Starting authorizer: 62mgrc for request: fd443056-60d0-425f-874e-e93e5d61351e
Unauthorized request: fd443056-60d0-425f-874e-e93e5d61351e

Nutzungspläne

Nachdem der Lambda-Genehmiger protokolliert hat, überprüft API Gateway den Nutzungsplan für die API-Anfrage. Wenn Sie keinen Nutzungsplan konfiguriert haben, werden API-Anfragen bei den Drosselungslimits nicht berücksichtigt.

Beispiele für Nutzungsplanprotokolle:

Verifying Usage Plan for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0. API Key: API Stage: <api_id>/<stage>
API Key authorized because method 'GET /' does not require API Key. Request will not contribute to throttle or quota limits
Usage Plan check succeeded for API Key and API Stage <api_id>/<stage>

Wenn Sie APIs mit API-Schlüsseln konfiguriert haben, der X-API-Key-Header jedoch fehlt, geben die Protokolle einen Fehler ähnlich dem folgenden zurück:

API Key not authorized because method 'GET /' requires API Key and API 
Key is not associated with a Usage Plan for API Stage 
<api_id>/<stage>: API Key was required but not present

Wenn Sie den richtigen API-Schlüssel im Header hinzugefügt haben, die Anforderung jedoch gedrosselt ist, geben die Protokolle einen Fehler ähnlich dem folgenden zurück:

API Key **********************************FGQes7 exceeded throttle limit for API Stage <api_id>/<stage>: Key throttle limit exceeded for Usage Plan ID iwuzkt. Limit: 5.00 Burst: 0
Method completed with status: 429

Anforderungsprotokolltypen

Hinweis: Für alle Anforderungsprotokolltypen muss in den Ausführungsprotokollen die Option Log full requests/responses data (Umfassende Anforderungs-/Antwortdaten protokollieren) aktiviert sein.

Methodenanforderungsprotokolle

Methodenanforderungsprotokolle enthalten detaillierte Informationen, die von einer API-Anforderung empfangen wurden, einschließlich Anforderungspfad, Abfrageparameter, Anforderungsheader und Anforderungstext.

Endpunktanforderungsprotokolle

Endpunktanforderungsprotokolle enthalten detaillierte Informationen, die von einer API-Anforderung empfangen wurden, einschließlich der URI, der Anforderungsheader und des Anforderungstexts.

Die in Endpunktanforderungen enthaltenen Daten werden zur weiteren Verarbeitung an Ihre Backend-Integration gesendet.

Endpunkt-Antwortprotokolle

Endpunkt-Antwortprotokolle enthalten die von der Backend-Integration zurückgegebenen Daten, einschließlich des Statuscodes, des Headertexts und der Integrationslatenz.

Methodenantwortprotokolle

Methodenantwortprotokolle enthalten die Header und den Text, die nach der Transformation an den Client gesendet wurden.

Wichtig: API Gateway begrenzt Protokollereignisse auf 1 024 Byte. Protokollereignisse, die größer als 1 024 Byte sind, wie z. B. Anforderungs- und Antworttexte, werden von API Gateway gekürzt, bevor sie an CloudWatch-Protokolle übermittelt werden.


Relevante Informationen

Wie kann ich fehlende CloudWatch-Protokolle für API-Gateway-REST-APIs beheben?

Einrichten der CloudWatch-Protokollierung für eine REST-API in API Gateway

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

Überwachung der WebSocket-API-Ausführung mit CloudWatch-Metriken

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren