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
loggingLevelaufERRORoderINFO. 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.
-
Erstellen Sie die Übermittlungsquelle
Registrieren Sie Ihre REST-API als Lieferquelle.
aws logs put-delivery-source \ --namemy-apigw-source\ --log-type EXECUTION_LOGS \ --resource-arn arn:aws:apigateway:{region}:{account-id}:/restapis/{rest-api-id}/stages/{stage-name} -
Erstellen Sie das Lieferziel
Registrieren Sie Ihre Loggruppe als Lieferziel.
aws logs put-delivery-destination \ --namemy-log-destination\ --delivery-destination-configuration "destinationResourceArn=arn:aws:logs:{region}:{account-id}:log-group:{log-group-name}" -
Erstellen Sie die Lieferung
Verknüpfen Sie die Quelle mit dem Ziel.
aws logs create-delivery \ --delivery-source-namemy-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-Phaseevent_timestamp— Die Uhrzeit des Protokollereignissesapi_id— Die REST-API-Kennungstage— Der Künstlernameresource_path— Der Ressourcenpfad der Anfragehttp_method— Die HTTP-Methodepayload— 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.
Melden Sie sich bei der API Gateway-Konsole unter an https://console.aws.amazon.com/apigateway
. -
Wählen Sie Ihre REST-API und dann Stages.
-
Wählen Sie eine Stufe aus.
-
Wählen Sie im Abschnitt Logs and Tracing unter Log-Lieferziele die Option Ziel hinzufügen aus.
-
Wählen Sie einen Zieltyp (CloudWatch Logs, Amazon S3 oder Firehose) und geben Sie die Zielressource an.
-
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.