Suche…


Syntax

  • Deserialisiertes JSON-basiertes Objekt
  • "Records" -Taste hat ein oder mehrere tatsächliche Ereignisse
  • Jedes Unterereignisobjekt enthält alle Informationen, die Sie benötigen, um die Änderungen zu ermitteln

Parameter

Parameter Einzelheiten
Records -> [] -> s3 -> bucket -> name Der Name des S3-Buckets
Records -> [] -> s3 -> object -> key Der Pfad und Name der Datei.

Bemerkungen

Dateinamen

Im Gegensatz zu den meisten Dateipfaden enthält der S3-Schlüsselname (JSON-Schema: $.Records[0].s3.object.key ) keinen führenden Schrägstrich. Wenn Sie eine Datei im Pfad s3://mybucket/path/file.txt , s3://mybucket/path/file.txt der Schlüssel path/file.txt

Zumindest in Python ist der Schlüsselfeldwert UTF-8-URL-kodiert. Dies fällt auf, wenn der Dateiname Leerzeichen oder Nicht-ASCII-Zeichen enthält. Das Feld muss in der URL decodiert, dann UTF-8 decodiert - Siehe Nicht-ASCII - Dateinamen von S3 Benachrichtigungsereignis in Lambda Get

Datensatzschlüssel

Innerhalb der Taste "Records" des Ereignisses können mehrere derselben (oder unterschiedlichen) Aktionen ausgeführt werden. In der Praxis wird jedoch normalerweise ein Ereignis pro Aufruf Ihrer Lambda-Funktion angezeigt.

Weitere Beispiele & Tests

Es gibt tatsächlich Beispielereignisse in der Lambda-Konsole, wenn Sie Aktionen -> Testereignis konfigurieren auswählen. Sie können jedoch die PUT-Operation in den obigen Beispielen sehen.

Sie können Testereignisse über die AWS Lambda-Konsole ändern und senden, um zu sehen, wie Ihre Funktion reagiert.

S3 PUT-Betrieb

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
        "sourceIPAddress": "127.0.0.1"
      },
      "s3": {
        "configurationId": "testConfigRule",
        "object": {
          "eTag": "0123456789abcdef0123456789abcdef",
          "sequencer": "0A1B2C3D4E5F678901",
          "key": "HappyFace.jpg",
          "size": 1024
        },
        "bucket": {
          "arn": "arn:aws:s3:::mybucket",
          "name": "sourcebucket",
          "ownerIdentity": {
            "principalId": "EXAMPLE"
          }
        },
        "s3SchemaVersion": "1.0"
      },
      "responseElements": {
        "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
        "x-amz-request-id": "EXAMPLE123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "EXAMPLE"
      },
      "eventSource": "aws:s3"
    }
  ]
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow