Recherche…


Syntaxe

  • Objet basé sur JSON désérialisé
  • La touche "Records" a un ou plusieurs événements réels
  • Chaque objet sous-événement contient toutes les informations nécessaires pour déterminer ce qui a changé

Paramètres

Paramètre Détails
Records -> [] -> s3 -> bucket -> name Le nom du seau S3
Records -> [] -> s3 -> object -> key Le chemin et le nom du fichier.

Remarques

Noms de fichiers

Contrairement à la plupart des chemins de fichiers, le nom de la clé S3 (schéma JSON: $.Records[0].s3.object.key ) n'inclut pas de barre oblique. Donc, si vous avez un fichier dans le chemin s3://mybucket/path/file.txt , la clé sera path/file.txt

Au moins en Python, la valeur du champ clé est l'URL UTF-8 codée. Cela se remarque lorsque le nom de fichier contient des espaces ou des caractères non ascii. Le champ doit être décodé par URL, puis décodé par UTF-8 - Voir Obtenir un nom de fichier non-ASCII à partir de l'événement de notification S3 dans Lambda

Clé d'enregistrement

Il est possible d'avoir plusieurs actions identiques (ou différentes) à l'intérieur de la clé "Records" de l'événement; toutefois, en pratique, vous verrez généralement un événement par invocation de votre fonction Lambda.

Plus d'exemples et d'essais

Il existe en réalité des exemples d’événements dans la console Lambda, si vous choisissez Actions -> Configurer l’événement de test. Cependant, vous pouvez voir l'opération PUT dans les exemples ci-dessus.

Vous pouvez modifier et soumettre des événements de test à partir de la console AWS Lambda pour voir comment votre fonction répond.

Opération S3 PUT

{
  "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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow