Perché ricevo l'errore "Configuration is ambiguously defined" quando creo una notifica di evento Amazon S3 per attivare la mia funzione Lambda?

4 minuti di lettura
0

Sto cercando di creare una notifica di evento bucket Amazon Simple Storage Service (Amazon S3) per attivare la mia funzione AWS Lambda e ho ricevuto un errore.

Breve descrizione

L'errore "Configuration is ambiguously defined error" si verifica quando le informazioni sull'evento di una notifica e il relativo prefisso o suffisso si sovrappongono alla configurazione di notifica di un bucket S3.

L'errore può verificarsi quando si esegue una delle seguenti operazioni:

  • Ricreazione di una notifica di evento S3 che hai eliminato di recente.
  • Creazione di notifiche di eventi S3 per più eventi sovrapposti utilizzando prefissi o suffissi sovrapposti.

Nota: le configurazioni di notifica degli eventi di Amazon S3 consentono eventi sovrapposti con prefissi o suffissi non sovrapposti. Le configurazioni consentono anche eventi non sovrapposti con prefissi o suffissi sovrapposti.

Per ulteriori informazioni ed esempi, consulta Configuring event notifications using object key name filtering.

Risoluzione

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

Per rivedere la configurazione delle notifiche del bucket S3 corrente, esegui una delle seguenti operazioni:

Quindi, esegui una delle seguenti operazioni:

Rimuovere un evento sovrapposto

Nella console Amazon S3, elimina una notifica di evento esistente che si sovrappone a quella nuova che stai cercando di creare.

Nota: quando si elimina un trigger di funzione Lambda, la notifica dell'evento S3 associata non viene eliminata automaticamente. È inoltre necessario eliminare la notifica in Amazon S3 prima di creare un nuovo trigger senza vincoli di suffisso.

-or-

Aggiorna il file JSON di configurazione delle notifiche sul tuo bucket S3 utilizzando l'interfaccia della linea di comando di AWS. Per ottenere un elenco di tutte le notifiche di eventi configurate nel bucket S3, esegui il comando AWS CLI get-bucket-notification-configuration. Per rimuovere tutte le notifiche di eventi S3, esegui il comando AWS CLI put-bucket-notification-configuration simile al seguente:

Nota: sostituisci bucket-name con il nome del tuo bucket.

aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"

Dopo aver rimosso la notifica degli eventi sovrapposti, puoi aggiungere nuove notifiche utilizzando la console Amazon S3 o il comando AWS CLI put-bucket-notification-configuration.

Riconfigurare la nuova notifica

Modifica la denominazione della chiave per lo spazio del nome del bucket S3 per consentire più eventi sovrapposti con prefissi non sovrapposti.

Ad esempio, per specificare che oggetti evento sovrapposti, come le immagini caricate, utilizzano una cartella bucket S3 diversa (prefisso) a seconda del tipo di file di immagine (suffisso):

  • S3://mybucket/uploadedJPEG
  • S3://mybucket/uploadedGIF

Riprogettazione per il tuo caso d'uso

Se non riesci a riconfigurare la notifica degli eventi S3 per evitare la sovrapposizione, prova a riprogettare la tua architettura per aggirare il problema.

Ad esempio:

Suggerimento: per architetture e processi più complessi, utilizza una macchina a stati di AWS Step Functions per progettare e gestire il flusso di lavoro. Per ulteriori informazioni, consulta i Casi d'uso di AWS Step Functions e i Tutorials su Step Functions.


Informazioni correlate

Why do I get the error "Unable to validate the following destination configurations" when creating an Amazon S3 event notification to invoke my Lambda function?

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

Using AWS Lambda with Amazon S3

Tutorial: Using an Amazon S3 trigger to invoke a Lambda function

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa