Direkt zum Inhalt

Wie konfiguriere ich einen CloudWatch-Abonnementfilter, um meine Lambda-Funktion aufzurufen?

Lesedauer: 2 Minute
0

Ich möchte einen Amazon-CloudWatch-Abonnementfilter konfigurieren, um meine AWS-Lambda-Funktion aufzurufen.

Kurzbeschreibung

Mit Amazon CloudWatch Logs kannst du einen Abonnementfilter verwenden, der Protokolldaten an deine Lambda-Funktion sendet.

Hinweis: Große Mengen an CloudWatch-Logs-Daten können zu hohen Nutzungsgebühren führen. Es hat sich bewährt, AWS Budgets zu verwenden, um Ausgaben und Nutzung zu verfolgen.

Lösung

Erstelle einen CloudWatch-Logs-Abonnementfilter, der Protokolldaten an die Lambda-Funktion sendet.

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Gehe wie folgt vor:

  1. Um CloudWatch Logs die Berechtigung zum Aufrufen der Lambda-Funktion zu erteilen, führe den folgenden AWS-CLI-Befehl add-permission aus:

    aws lambda add-permission \
        --function-name my-function \
        --statement-id my-id \
        --principal logs.amazonaws.com \
        --action lambda:InvokeFunction \
        --source-arn 'arn:aws:logs:region:123456789123:log-group:my-log-group:*' \
        --source-account my-account-id

    Hinweis: Ersetze my-function durch deinen Funktionsnamen und my-id durch deine Anweisungs-ID. Ersetze region durch deine AWS-Region, my-log-group durch deinen Protokollgruppen-ARN und my-account-id durch deine AWS-Konto-ID.

  2. Um einen Abonnementfilter zum Senden von Protokollereignissen zu erstellen, die ein Schlüsselwort enthalten, führe den folgenden AWS-CLI-Befehl put-subscription-filter aus:

    aws logs put-subscription-filter \
        --log-group-name my-log-group \
        --filter-name my-filter \
        --filter-pattern "ERROR" \
        --destination-arn arn:aws:lambda:my-region:123456789123:function:my-function-name

    Hinweis: Ersetze my-log-group durch deinen Protokollgruppennamen, my-filter durch deinen Filternamen und my-region durch deine AWS-Region. Ersetze 123456789123 durch deine Konto-ID und my-function-name durch deinen Funktionsnamen.

Die vorherige CloudWatch-Logs-Protokollgruppe ruft die Lambda-Funktion auf, wenn die Protokollgruppe ein Protokollereignis empfängt, das das Schlüsselwort ERROR enthält, ähnlich dem folgenden:

{
  "awslogs": {
    "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA=="
  }
}

Ähnliche Informationen

Filtermustersyntax für Metrikfilter, Abonnementfilter, Filterprotokollereignisse und Live Tail

AWS OFFICIALAktualisiert vor 7 Monaten