Perché la notifica degli eventi di Amazon S3 non richiama la mia funzione Lambda?

4 minuti di lettura
0

Ho configurato una notifica degli eventi Amazon Simple Storage Service (Amazon S3) per richiamare la mia funzione AWS Lambda. Tuttavia, la funzione non viene richiamata quando si verifica l'evento Amazon S3.

Soluzione

Nota: Se ricevi degli errori durante l'esecuzione dei comandi dell'Interfaccia della riga di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

Verifica che il tuo tipo di evento Amazon S3 sia configurato correttamente

Quando configuri una notifica degli eventi Amazon S3, devi specificare quali tipi di eventi Amazon S3 supportati causano l'invio della notifica da parte di Amazon S3. Se nel tuo bucket Amazon S3 si verifica un tipo di evento che non hai specificato, Amazon S3 non invia la notifica.

Esempio: una notifica degli eventi Amazon S3 è configurata per richiamare Lambda con l'evento s3:ObjectCreated:Put. Se carichi un file di grandi dimensioni, il file viene caricato utilizzando il caricamento in più parti. L'evento s3:ObjectCreated:CompleteMultipartUpload deve essere selezionato con l'evento s3:ObjectCreated:Put. Puoi anche utilizzare il tipo di evento s3:ObjectCreated:* per richiedere notifiche per qualsiasi API utilizzata per creare un oggetto.

Verifica che i filtri del nome della chiave dell'oggetto includano il nome del file caricato

Se le notifiche degli eventi sono configurate per utilizzare il filtro dei nomi delle chiavi degli oggetti, le notifiche vengono pubblicate solo per oggetti con prefissi o suffissi specifici. Un carattere jolly ("*") non può essere usato nei filtri come prefisso o suffisso per rappresentare alcun carattere. Assicurati che i filtri con prefisso o suffisso specificati nella notifica degli eventi includano il nome della chiave dell'oggetto caricato.

Verifica che i filtri dei nomi delle chiavi degli oggetti abbiano la codifica URL (codifica percentuale) come formato

Se le notifiche degli eventi sono configurate per utilizzare il filtro dei nomi delle chiavi degli oggetti, le notifiche vengono pubblicate solo per oggetti con prefissi o suffissi specifici.

Se usi uno dei seguenti caratteri speciali nei tuoi prefissi o suffissi, devi inserirli nel formato con codifica URL (codifica percentuale):

  • Parentesi ("( )")
  • Intervalli di caratteri ASCII 00–1F esadecimali (0–31 decimali) e 7F (127 decimali)
  • Dollaro ("$")
  • Ampersand ("&")
  • Segno più ("+")
  • Virgola (",")
  • Due punti (":")
  • Punto e virgola (";")
  • Simbolo di uguale ("=")
  • Punto interrogativo ("? ")
  • Chiocciola ("@")
  • Spazio (" ")

Esempio: per definire il valore di un prefisso come "test=abc/", inserisci "test%3Dabc/" come valore.

Nota: Un carattere jolly ("*") non può essere usato nei filtri come prefisso o suffisso per rappresentare alcun carattere.

Per ulteriori informazioni, vedi Linee guida per la denominazione delle chiavi degli oggetti.

Verifica che la policy AWS Identity and Access Management (IAM) della tua funzione Lambda disponga delle autorizzazioni richieste

Controlla la policy basata sulle risorse della tua funzione Lambda per confermare che consenta al bucket Amazon S3 di richiamare la funzione. In caso contrario, aggiungi le autorizzazioni richieste seguendo le istruzioni in Concedere l'accesso alla funzione ai servizi AWS.

Per ulteriori informazioni, consulta le autorizzazioni di AWS Lambda.

Nota: Quando aggiungi una notifica degli eventi utilizzando la console Amazon S3, le autorizzazioni richieste vengono aggiunte automaticamente alla policy della funzione. Se utilizzi l'azione put-bucket-notification-configuration nell'interfaccia di AWS CLI per aggiungere una notifica degli eventi, la policy della tua funzione non viene aggiornata automaticamente.

Verifica che la tua funzione Lambda sia configurata per gestire le chiamate simultanee dalle notifiche degli eventi di Amazon S3

La tua funzione Lambda deve essere configurata per gestire le chiamate simultanee dalle notifiche degli eventi di Amazon S3. Se le richieste di chiamata arrivano più velocemente rispetto al livello di dimensionamento della funzione o se la funzione è al punto massimo di simultaneità, Lambda limita le richieste.

Per ulteriori informazioni, consulta chiamata asincrona e dimensionamento della funzione Lambda.


Informazioni correlate

Come posso risolvere i problemi relativi alla chiamata di una funzione Lambda con una notifica degli eventi Amazon S3 utilizzando Automazione Systems Manager?

Utilizzo di AWS Lambda con gli eventi Amazon S3

Procedura dettagliata: Configurazione di un bucket per le notifiche (argomento SNS o coda SQS)

Tutorial: Utilizzo di un trigger Amazon S3 per richiamare una funzione Lambda

Perché ricevo l'errore "Unable to validate the following destination configurations" quando creo una notifica degli eventi Amazon S3 per richiamare la mia funzione Lambda?

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa