Zugriff auf Meta-Daten von AWS S3, AWS Lambda

Möchte ich abrufen, einige meta-Daten, die ich Hinzugefügt (Konsole mit dem x-amz-meta-my_variable) jedes mal, wenn ich den upload ein Objekt S3.

Habe ich lambda über die Konsole auslösen, jedes mal, wenn ein Objekt hochgeladen wird mein Eimer

Frage ich mich, wenn ich so etwas wie variable = event['Records'][0]['s3']['object']['my_variable'] zum abrufen dieser Daten oder wenn ich die Verbindung zu S3 mit dem Eimer und-Taste und rufen dann eine Funktion, die es abrufen?

Unten ist der code:

from __future__ import print_function

import json
import urllib
import boto3

print('Loading function')

s3 = boto3.client('s3')


def lambda_handler(event, context):

    # Get the object from the event and show its content type
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf8')

    # variable = event['Records'][0]['s3']['object']['my_variable']

    try:
        response = s3.get_object(Bucket=bucket, Key=key)

        # Call some function here?

        print("CONTENT TYPE: " + response['ContentType'])
        return response['ContentType']

    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e
  • Ich habe nicht gefunden eine autorisierende Dokumentation, was genau enthalten ist, in S3-Veranstaltungen geschickt werden, um eine Lambda-Funktion. Mein Vorschlag wäre, das Ereignis zu protokollieren und überprüfen Sie dann die Protokolldatei, um zu sehen, wenn die Informationen, die Sie wollen, ist Bestandteil der Veranstaltung.
  • Dokumentation über das, was enthalten ist in S3 Ereignisse können hier gefunden werden: docs.aws.amazon.com/AmazonS3/latest/dev/... . Es ist eine Schande, dass die Metadaten nicht enthalten 🙁
InformationsquelleAutor Y Anderson | 2016-03-02
Schreibe einen Kommentar