Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Richiama una funzione di eventi Lambda con eventi batch di Amazon S3
Puoi utilizzare le operazioni batch di Amazon S3 per richiamare una funzione di eventi Lambda su un ampio set di oggetti Amazon S3. Amazon S3 tiene traccia dello stato di avanzamento delle operazioni batch, invia notifiche e memorizza un report di completamento che mostra lo stato di ogni operazione.
Per eseguire un'operazione batch, è possibile creare un lavoro di operazioni batch Amazon S3. Quando si crea il lavoro, si fornisce un file manifest (l'elenco degli oggetti) e si configura l'operazione da eseguire su tali oggetti.
All'avvio del processo batch, Amazon S3 richiama la funzione Lambda Event in modo sincrono per ogni oggetto nel manifesto. Il parametro evento include i nomi del bucket e dell'oggetto.
L'esempio seguente mostra l'evento che Amazon S3 invia alla Lambda Event Function per un oggetto denominato customer Image1.jpg nel bucket amzn-s3-demo-bucket.
Esempio Evento di richiesta batch 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" } ] }
La tua funzione evento Lambda deve restituire un oggetto JSON con i campi come mostrato nell'esempio seguente. È possibile copiare invocationId e taskId dal parametro evento. È possibile restituire una stringa in resultString. Amazon S3 salva i valori resultString nel report di completamento.
Esempio Risposta alla richiesta batch Amazon S3
{ "invocationSchemaVersion": "1.0", "treatMissingKeysAs" : "PermanentFailure", "invocationId" : "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", "results": [ { "taskId": "dGFza2lkZ29lc2hlcmUK", "resultCode": "Succeeded", "resultString": "[\"Alice\", \"Bob\"]" } ] }
Richiamo di funzioni di eventi Lambda dalle operazioni batch di Amazon S3
È possibile richiamare la funzione Lambda Event con una funzione non qualificata o qualificata ARN. Se si desidera utilizzare la stessa versione di funzione per l'intero lavoro batch, configurare una versione di funzione specifica nel parametro FunctionARN quando si crea il lavoro. Se si configura un alias o il qualificatore $LATEST, il lavoro batch inizia immediatamente a chiamare la nuova versione della funzione se l'alias o $LATEST viene aggiornato durante l'esecuzione del lavoro.
Si noti che non è possibile riutilizzare una funzione basata su eventi Amazon S3 esistente per le operazioni batch. Questo perché l'operazione batch di Amazon S3 passa un parametro di evento diverso alla Lambda Event Function e prevede un messaggio di ritorno con una struttura JSON specifica.
Nella politica basata sulle risorse che crei per il processo batch di Amazon S3, assicurati di impostare l'autorizzazione affinché il processo richiami la tua funzione di evento Lambda.
Nel ruolo di esecuzione per la funzione, impostare una policy di attendibilità Amazon S3 per assumere il ruolo quando viene eseguita la funzione.
Se la tua funzione utilizza l' AWS SDK per gestire le risorse Amazon S3, devi aggiungere le autorizzazioni Amazon S3 nel ruolo di esecuzione.
Quando il lavoro viene eseguito, Amazon S3 avvia più istanze di funzione per elaborare gli oggetti Amazon S3 in parallelo, fino al limite di simultaneità della funzione. Amazon S3 limita l'aumento iniziale delle istanze per evitare costi eccessivi per i lavori più piccoli.
Se la funzione Lambda Event Function restituisce un codice di TemporaryFailure risposta, Amazon S3 riprova l'operazione.
Per ulteriori informazioni sulla gestione delle operazioni in batch Amazon S3, consulta Gestione dei processi di operazioni in batch nella Guida per gli sviluppatori di Amazon S3.
Per un esempio di come utilizzare una funzione Lambda Event nelle operazioni batch di Amazon S3, consulta Invocare una funzione Lambda dalle operazioni batch di Amazon S3 nella Amazon S3 Developer Guide.