Salta al contenuto

Come posso risolvere i problemi delle notifiche degli eventi Amazon S3 che non invocano la mia funzione Lambda?

2 minuti di lettura
0

Desidero risolvere i problemi delle notifiche degli eventi Amazon Simple Storage Service (Amazon S3) che non invocano la mia funzione AWS Lambda.

Risoluzione

Per risolvere i problemi delle notifiche degli eventi Amazon S3 per le funzioni Lambda, verifica le autorizzazioni e le impostazioni di configurazione completando i seguenti passaggi:

  1. Apri la console Amazon S3, quindi accedi al bucket.
  2. Scegli la scheda Proprietà.
  3. In Notifiche degli eventi, seleziona la notifica degli eventi, quindi scegli Modifica.
  4. In Configurazione generale, rivedi le impostazioni Prefisso e Suffisso.
  5. (Facoltativo) Se utilizzi un prefisso o un suffisso, verifica quanto segue:
    La chiave oggetto nel bucket corrisponde alle linee guida per la denominazione delle chiavi oggetto.
    Tutti i caratteri speciali sono in formato con codifica URL (codifica percentuale).
  6. In Destinazione, verifica che l'ARN della funzione Lambda corrisponda a una funzione valida.
  7. Scegli Salva le modifiche.
  8. Apri la console Lambda, quindi scegli Funzioni.
  9. In Nome della funzione, scegli la funzione Lambda.
  10. Seleziona la scheda Configurazione, quindi scegli Autorizzazioni.
  11. In Istruzioni di policy basate su risorse, scegli la policy, quindi Visualizza policy.
  12. Assicurati che la policy basata sulle risorse consenta ad Amazon S3 di invocare la funzione Lambda:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:FUNCTION_NAME",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "ACCOUNT_ID"
        },
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:s3:::BUCKET_NAME"
        }
      }
    }
  ]
}

Nota: sostituisci REGION, ACCOUNT_ID, FUNCTION_NAME e BUCKET_NAME con la tua Regione AWS, il tuo account AWS, il nome della tua funzione e il nome del tuo bucket. AWS:SourceAccount è l'account proprietario del bucket e ArnLike è l'ARN del bucket.

Nella precedente policy basata sulle risorse, il Principale s3.amazonaws.com è autorizzato a eseguire l'azione API lambda:InvokeFunction sull'ARN della Risorsa.

Importante: Amazon S3 generalmente invia notifiche degli eventi in pochi secondi, ma a volte può richiedere 1 minuto o più. Per ulteriori informazioni, consulta Notifiche degli eventi Amazon S3.

Informazioni correlate

Come posso consentire alla mia funzione Lambda di accedere al mio bucket Amazon S3?

Perché ricevo errori di accesso negato quando utilizzo una funzione Lambda per caricare file su un bucket Amazon S3 in un altro account AWS?

AWS UFFICIALEAggiornata un anno fa