View a markdown version of this page

Erstellen Sie eine Protokollzustellung für REST-API-Ausführungsprotokolle - Amazon API Gateway

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.

Erstellen Sie eine Protokollzustellung für REST-API-Ausführungsprotokolle

Sie können Ausführungsprotokolle an Ihre eigenen CloudWatch Logs-Protokollgruppen, Amazon S3-Buckets oder Firehose-Streams weiterleiten. Erstellen Sie dazu eine Amazon CloudWatch Logs-Lieferung. Dies umfasst drei Schritte: Erstellen einer Lieferquelle, Erstellen eines Lieferziels und Verknüpfen der beiden Schritte mit einer Lieferung.

Voraussetzungen

Bevor Sie eine Protokollzustellung erstellen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Die Ausführungsprotokollierung ist auf Ihrer REST-API-Phase aktiviert. Setzen Sie loggingLevel auf ERROR oder INFO. Wenn die Protokollierung nicht aktiviert ist, schlägt die Erstellung der Übermittlungsquelle fehl.

  • Eine Zielressource: eine CloudWatch Logs-Log-Gruppe, ein Amazon S3-Bucket oder ein Firehose-Stream, dessen Eigentümer Sie sind.

  • Berechtigungen zum Aufrufen der Amazon CloudWatch Logs-Liefer-APIs. Weitere Informationen finden Sie im Amazon CloudWatch Logs-Benutzerhandbuch unter Protokollierung von AWS Diensten aktivieren.

Gateway-specific API-Werte für die Amazon CloudWatch Logs-Lieferung

Verwenden Sie die folgenden Werte, wenn Sie eine Lieferung für API Gateway-Ausführungsprotokolle erstellen:

ARN-Ressourcen

arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}

Protokolltyp

EXECUTION_LOGS

Erstellen Sie eine Protokollzustellung (AWS CLI)

Im folgenden Beispiel wird eine Lieferung erstellt, die Ausführungsprotokolle von einer REST-API an eine CloudWatch Logs-Protokollgruppe sendet, deren Eigentümer Sie sind.

  1. Erstellen Sie die Übermittlungsquelle

    Registrieren Sie Ihre REST-API als Lieferquelle.

    aws logs put-delivery-source \ --name my-apigw-source \ --log-type EXECUTION_LOGS \ --resource-arn arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name}
  2. Erstellen Sie das Lieferziel

    Registrieren Sie Ihre Loggruppe als Lieferziel.

    aws logs put-delivery-destination \ --name my-log-destination \ --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{region}:{account-id}:log-group:{log-group-name}"
  3. Erstellen Sie die Lieferung

    Verknüpfen Sie die Quelle mit dem Ziel.

    aws logs create-delivery \ --delivery-source-name my-apigw-source \ --delivery-destination-arn arn:aws:logs:{region}:{account-id}:delivery-destination:my-log-destination

Um Protokolle an Amazon S3 oder Firehose zu senden, geben Sie im put-delivery-destination Befehl den entsprechenden Ressourcen-ARN an. Weitere Informationen zum vollständigen Amazon CloudWatch Logs-Versandworkflow finden Sie im Amazon CloudWatch Logs-Benutzerhandbuch unter Protokollierung von AWS Diensten aktivieren.

Um Protokolle an mehrere Ziele zu senden, erstellen Sie zusätzliche Lieferungen über dieselbe Versandquelle mit unterschiedlichen Zielen.

Felder aufzeichnen

Bei der Amazon CloudWatch Logs-Lieferung enthalten die Ausführungsprotokolle strukturierte Felder, die Sie für jedes Ziel anpassen können. Die folgenden Felder sind verfügbar:

  • resource_arn— Der ARN der API-Phase

  • event_timestamp— Die Uhrzeit des Protokollereignisses

  • api_id— Die REST-API-Kennung

  • stage— Der Künstlername

  • resource_path— Der Ressourcenpfad der Anfrage

  • http_method— Die HTTP-Methode

  • payload— Der Inhalt des Ausführungsprotokolls (entspricht den Standard-Ausführungsprotokollen)

Sie können die einzuschließenden Felder und das Ausgabeformat für jedes Ziel auswählen, indem Sie den --record-fields Parameter on create-delivery und den --output-format Parameter on verwendenput-delivery-destination.

Die verfügbaren Ausgabeformate hängen vom Ziel ab:

  • CloudWatch Protokolle — json, einfach

  • Amazon S3 — json, einfach, w3c, Parkett

  • Firehose — json, schlicht

Entspricht der Standardausgabe des Ausführungsprotokolls

Wenn Sie eine Übermittlungsausgabe wünschen, die der standardmäßigen Ausführungsprotokollierung entspricht (nur Nutzlast, keine zusätzlichen Felder), fügen Sie --output-format "plain" zu put-delivery-destination und --record-fields "payload" --field-delimiter "" zu create-delivery hinzu.

Erstellen Sie eine Protokolllieferung (CloudFormation)

Verwenden Sie beim Zusammenstellen des Staging-ARN für CloudFormation Vorlagen das folgende Muster:

DeliverySource: Type: AWS::Logs::DeliverySource Properties: Name: my-apigw-source LogType: EXECUTION_LOGS ResourceArn: !Sub "arn:${AWS::Partition}:apigateway:${AWS::Region}:${AWS::AccountId}:/restapis/${MyApi}/stages/${MyStageName}"

Erstellen Sie eine Protokollzustellung (API Gateway-Konsole)

Sie können eine Protokollzustellung im Abschnitt Logs and Tracing auf Ihrer Seite mit den Stufendetails erstellen.

  1. Melden Sie sich bei der API Gateway-Konsole unter an https://console.aws.amazon.com/apigateway.

  2. Wählen Sie Ihre REST-API und dann Stages.

  3. Wählen Sie eine Stufe aus.

  4. Wählen Sie im Abschnitt Logs and Tracing unter Log-Lieferziele die Option Ziel hinzufügen aus.

  5. Wählen Sie einen Zieltyp (CloudWatch Logs, Amazon S3 oder Firehose) und geben Sie die Zielressource an.

  6. Wählen Sie Speichern.

Wichtig

Sie müssen die Ausführungsprotokollierung auf der Bühne aktivieren, bevor Sie Lieferziele hinzufügen können. Wenn die Protokollierung auf Aus gesetzt ist, generiert die Versandkonfiguration keine Protokolle.

Anmerkung

Verwenden Sie die AWS CLI, um kontoübergreifende Zustellungsziele zu konfigurieren. Sie müssen eine Lieferzielrichtlinie im Zielkonto erstellen, bevor Sie die Lieferung im Quellkonto erstellen. Weitere Informationen finden Sie im Cross-account Versandbeispiel im Amazon CloudWatch Logs-Benutzerhandbuch.