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.
Rufen Sie eine Lambda-Ereignisfunktion mit Amazon S3-Batchereignissen auf
Sie können Amazon S3 S3-Batchoperationen verwenden, um eine Lambda-Ereignisfunktion für eine große Menge von Amazon S3 S3-Objekten aufzurufen. Amazon S3 verfolgt den Fortschritt von Batchvorgängen, sendet Benachrichtigungen und speichert einen Abschlussbericht, der den Status jeder Aktion anzeigt.
Zum Ausführen eines Batchvorgangs erstellen Sie einen Amazon-S3-Batchvorgangsauftrag. Wenn Sie den Auftrag erstellen, stellen Sie ein Manifest (die Liste der Objekte) bereit und konfigurieren die Aktion für diese Objekte.
Wenn der Batch-Job gestartet wird, ruft Amazon S3 die Lambda-Ereignisfunktion synchron für jedes Objekt im Manifest auf. Der Ereignis-Parameter enthält die Namen des Buckets und des Objekts.
Das folgende Beispiel zeigt das Ereignis, das Amazon S3 an die Lambda-Ereignisfunktion für ein Objekt mit dem Namen customer Image1.jpg im Bucket amzn-s3-demo-bucket sendet.
Beispiel Batch-Anforderungsereignis für Amazon S3
{ "invocationSchemaVersion": "1.0", "invocationId": "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", "job": { "id": "f3cc4f60-61f6-4a2b-8a21-d07600c373ce" }, "tasks": [ { "taskId": "dGFza2lkZ29lc2hlcmUK", "s3Key": "customerImage1.jpg", "s3VersionId": "1", "s3BucketArn": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }
Ihre Lambda-Ereignisfunktion muss ein JSON-Objekt mit den Feldern zurückgeben, wie im folgenden Beispiel gezeigt. Sie können den Parameter invocationId und taskId aus dem Ereignisparameter kopieren. Sie können eine Zeichenfolge in resultString zurückgeben. Amazon S3 speichert die resultString-Werte im Abschlussbericht.
Beispiel Batch-Anforderungantwort für Amazon S3
{ "invocationSchemaVersion": "1.0", "treatMissingKeysAs" : "PermanentFailure", "invocationId" : "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", "results": [ { "taskId": "dGFza2lkZ29lc2hlcmUK", "resultCode": "Succeeded", "resultString": "[\"Alice\", \"Bob\"]" } ] }
Aufrufen von Lambda-Ereignisfunktionen aus Amazon S3 S3-Batch-Vorgängen
Sie können die Lambda-Ereignisfunktion mit einem unqualifizierten oder qualifizierten Funktions-ARN aufrufen. Wenn Sie dieselbe Funktionsversion für den gesamten Stapelauftrag verwenden möchten, konfigurieren Sie beim Erstellen des Auftrags eine bestimmte Funktionsversion im Parameter FunctionARN. Wenn Sie einen Alias oder den Qualifizierer $LATEST konfigurieren, beginnt der Stapelauftrag sofort, die neue Version der Funktion aufzurufen, wenn der Alias oder $LATEST während der Auftragsausführung aktualisiert wird.
Beachten Sie, dass Sie eine vorhandene ereignisbasierte Amazon-S3-Funktion nicht für Batchvorgänge verwenden können. Dies liegt daran, dass der Amazon S3 S3-Batchvorgang einen anderen Ereignisparameter an die Lambda-Ereignisfunktion übergibt und eine Rückmeldung mit einer bestimmten JSON-Struktur erwartet.
Stellen Sie in der ressourcenbasierten Richtlinie, die Sie für den Amazon S3 S3-Batch-Job erstellen, sicher, dass Sie für den Job die Berechtigung zum Aufrufen Ihrer Lambda-Ereignisfunktion festlegen.
Legen Sie in der Ausführungsrolle für die Funktion eine Vertrauensrichtlinie fest, damit Amazon S3 die Rolle übernimmt, wenn die Funktion ausgeführt wird.
Wenn Ihre Funktion das AWS SDK zur Verwaltung von Amazon S3 S3-Ressourcen verwendet, müssen Sie der Ausführungsrolle Amazon S3 S3-Berechtigungen hinzufügen.
Wenn der Auftrag ausgeführt wird, startet Amazon S3 mehrere Funktionsinstances, um die Amazon-S3-Objekte bis zur Parallelitätsgrenze der Funktion parallel zu verarbeiten. Amazon S3 begrenzt den anfänglichen Hochlauf von Instances, um Überkosten für kleinere Aufträge zu vermeiden.
Wenn die Lambda-Ereignisfunktion einen TemporaryFailure Antwortcode zurückgibt, versucht Amazon S3 den Vorgang erneut.
Weitere Informationen zu Amazon-S3-Stapelvorgängen finden Sie unter Durchführen von Stapelvorgängen im Amazon-S3-Entwicklerhandbuch.
Ein Beispiel für die Verwendung einer Lambda-Ereignisfunktion in Amazon S3 S3-Batchvorgängen finden Sie unter Aufrufen einer Lambda-Funktion aus Amazon S3 S3-Batchoperationen im Amazon S3 S3-Entwicklerhandbuch.