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.
Lambda Event Function-Protokolle an Amazon S3 senden
Sie können Ihre Lambda-Ereignisfunktion so konfigurieren, dass Protokolle mithilfe der Lambda-Konsole direkt an Amazon S3 gesendet werden. Dieses Feature bietet eine kostengünstige Lösung für die langfristige Speicherung von Protokollen und ermöglicht leistungsstarke Analyseoptionen mithilfe von Services wie Athena.
Sie können Lambda Event Function-Protokolle so konfigurieren, dass sie mit der Lambda-Konsole, AWS CLI AWS CloudFormation, und allen AWS SDKs an Amazon S3 gesendet werden.
Preisgestaltung
Einzelheiten zu den Preisen finden Sie unter CloudWatch Amazon-Preise
Erforderliche Berechtigungen für das Amazon-S3-Protokollziel
Wenn Sie die Lambda-Konsole verwenden, um Amazon S3 als Protokollziel Ihrer Event Function zu konfigurieren, benötigen Sie:
-
Die erforderlichen IAM-Berechtigungen für die Verwendung von CloudWatch Logs mit Lambda.
-
Zu. Richten Sie einen CloudWatch Logs-Abonnementfilter ein, um Lambda Event Function-Logs an Amazon S3 zu senden Dieser Filter definiert, welche Protokollereignisse für Ihren Amazon-S3-Bucket bereitgestellt werden.
Richten Sie einen CloudWatch Logs-Abonnementfilter ein, um Lambda Event Function-Logs an Amazon S3 zu senden
Um Logs von CloudWatch Logs an Amazon S3 zu senden, müssen Sie einen Abonnementfilter erstellen. Dieser Filter definiert, welche Protokollereignisse für Ihren Amazon-S3-Bucket bereitgestellt werden. Ihr Amazon-S3-Bucket muss sich in derselben Region befinden wie Ihre Protokollgruppe.
So erstellen Sie einen Abonnementfilter für Amazon S3
-
Erstellen Sie einen Amazon-Simple-Storage-Service-(Amazon S3)-Bucket. Wir empfehlen Ihnen, einen Bucket zu verwenden, der speziell für CloudWatch Logs erstellt wurde. Wenn Sie jedoch einen vorhandenen Bucket verwenden möchten, gehen Sie direkt zu Schritt 2.
Führen Sie den folgenden Befehl aus, und ersetzen Sie die Platzhalter-Region mit der Region, die Sie verwenden möchten:
aws s3api create-bucket --bucket amzn-s3-demo-bucket2 --create-bucket-configuration LocationConstraint=regionAnmerkungamzn-s3-demo-bucket2ist ein Beispiel für den Namen eines Amazon-S3-Buckets. Er ist reserviert. Damit dieses Verfahren funktioniert, müssen Sie ihn durch den eindeutigen Namen Ihres Amazon-S3-Buckets ersetzen.Das Folgende ist eine Beispielausgabe:
{ "Location": "/amzn-s3-demo-bucket2" } -
Erstellen Sie die IAM-Rolle, die CloudWatch Logs die Berechtigung erteilt, Daten in Ihren Amazon S3 S3-Bucket zu legen. Diese Richtlinie beinhaltet den Kontextschlüssel aws: SourceArn global condition, um das Sicherheitsproblem „Confused Deputy“ zu verhindern. Weitere Informationen finden Sie unter Confused-Deputy-Prävention.
-
Verwenden Sie einen Text-Editor zum Erstellen einer Vertrauensrichtlinie in einer Datei
~/TrustPolicyForCWL.jsonwie folgt:{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } }, "Action": "sts:AssumeRole" } } -
Verwenden Sie den Befehl create-role, um die IAM-Rolle zu erstellen und die Datei mit der Vertrauensrichtlinie anzugeben. Notieren Sie sich den zurückgegebenen Role.Arn Wert, da Sie ihn in einem späteren Schritt benötigen:
aws iam create-role \ --role-name CWLtoS3Role \ --assume-role-policy-document file://~/TrustPolicyForCWL.json { "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:region:123456789012:*" } } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoS3Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/CWLtoS3Role" } }
-
-
Erstellen Sie eine Berechtigungsrichtlinie, um zu definieren, welche Aktionen CloudWatch Logs auf Ihrem Konto ausführen können. Verwenden Sie zunächst einen Text-Editor zum Erstellen einer Berechtigungsrichtlinie in einer Datei
~/PermissionsForCWL.json:{ "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2/*"] } ] }Verknüpfen Sie die Berechtigungsrichtlinie mit dem folgenden Befehl
put-role-policymit der Rolle:aws iam put-role-policy --role-name CWLtoS3Role --policy-name Permissions-Policy-For-S3 --policy-document file://~/PermissionsForCWL.json -
Erstellen Sie eine
Delivery-Protokollgruppe oder verwenden Sie eine vorhandeneDelivery-Protokollgruppe.aws logs create-log-group --log-group-name my-logs --log-group-class DELIVERY --region REGION_NAME -
PutSubscriptionFilterzum Einrichten des Zielsaws logs put-subscription-filter --log-group-name my-logs --filter-name my-lambda-delivery --filter-pattern "" --destination-arn arn:aws:s3:::amzn-s3-demo-bucket2 --role-arn arn:aws:iam::123456789012:role/CWLtoS3Role --region REGION_NAME
Lambda Event Function-Protokolle an Amazon S3 senden
In der Lambda-Konsole können Sie Event Function Logs direkt an Amazon S3 senden, nachdem Sie eine neue Event Function erstellt haben. Führen Sie dazu diese Schritte aus:
-
Melden Sie sich bei der AWS Management Console an und öffnen Sie die Lambda-Konsole.
-
Wählen Sie den Namen Ihrer Event-Funktion.
-
Wählen Sie die Registerkarte Konfiguration aus.
-
Wählen Sie die Registerkarte Überwachungs- und Betriebs-Tools aus.
-
Wählen Sie im Abschnitt „Protokollierungskonfiguration“ die Option Bearbeiten aus.
-
Wählen Sie im Abschnitt „Protokollinhalt“ ein Protokollformat aus.
-
Führen Sie im Abschnitt „Protokollziel“ die folgenden Schritte aus:
-
Wählen Sie einen Zielservice aus.
-
Wählen Sie Neue Protokollgruppe erstellen oder Vorhandene Protokollgruppe aus.
AnmerkungWenn Sie eine vorhandene Protokollgruppe für ein Amazon-S3-Ziel auswählen, stellen Sie sicher, dass es sich bei der ausgewählten Protokollgruppe um einen
Delivery-Protokollgruppentyp handelt. -
Wählen Sie einen Amazon S3 S3-Bucket als Ziel für Ihre Event Function-Logs aus.
-
Die CloudWatch
DeliveryProtokollgruppe wird angezeigt.
-
-
Wählen Sie Speichern.
Wenn die in der Konsole bereitgestellte IAM-Rolle nicht über die erforderlichen Berechtigungen verfügt, schlägt das Ziel-Setup fehl. Informationen zur Behebung dieses Problems finden Sie unter Erforderliche Berechtigungen für das Amazon-S3-Protokollziel.
Cross-Account Protokollierung
Sie können Lambda so konfigurieren, dass Protokolle an einen Amazon S3 S3-Bucket in einem anderen AWS Konto gesendet werden. Dies erfordert die Einrichtung eines Ziels und die Konfiguration der entsprechenden Berechtigungen in beiden Konten.
Detaillierte Anweisungen zur Einrichtung der kontoübergreifenden Protokollierung, einschließlich der erforderlichen IAM-Rollen und -Richtlinien, finden Sie unter Ein neues kontoübergreifendes Abonnement einrichten in der Logs-Dokumentation. CloudWatch