Come posso risolvere i problemi relativi all'invocazione di una funzione Lambda con una notifica di eventi Amazon S3 utilizzando Systems Manager Automation?

Ultimo aggiornamento: 14/02/2022

La mia notifica di eventi Amazon Simple Storage Service (Amazon S3) non invoca la mia funzione AWS Lambda. In alternativa, viene visualizzato un errore quando cerco di creare una notifica di evento Amazon S3 per invocare la mia funzione Lambda. Posso usare AWS Systems Manager Automation per risolvere i problemi di notifica degli eventi di Amazon S3 con Lambda?

Breve descrizione

Per risolvere i problemi durante l'invio di notifiche di eventi di Amazon S3 a Lambda, utilizza il runbook AWSSupport-TroubleshootLambdaS3Event Systems Manager Automation.

Il runbook verifica se esiste una configurazione di evento per la funzione Lambda e i valori dei parametri del bucket Amazon S3 inseriti. Se esiste una configurazione di evento, il runbook verifica che la configurazione, le policy delle risorse e le autorizzazioni siano corrette. L'output del runbook fornisce comandi AWS Command Line Interface (AWS CLI) che consentono di aggiungere le policy o le autorizzazioni necessarie per le risorse.

Nota: se la notifica degli eventi di Amazon S3 non è più necessaria, è consigliabile eliminare la notifica dell'evento.

Risoluzione

1.    Apri la console di AWS Systems Manager.

2.    Nel pannello di navigazione, in Gestione modifiche, scegli Automazione.

3.    Scegli Esegui automazione.

4.    Nella scheda Proprietà di Amazon, nella casella di ricerca del documento di automazione, inserisci e cerca AWSSupport-TroubleshootLambdaS3Event.

5.    Seleziona la casella di controllo in alto a destra della scheda AWSSupport-TroubleshootLambdaS3Event. Quindi, seleziona Successivo.

6.    Nella sezione Parametri di input, procedi come segue:
Per AutomationAssumeRole, inserisci un ruolo AWS Identity and Access Management (IAM) per il runbook da assumere che includa le autorizzazioni Lambda:GetPolicy e S3:GetBucketNotification.
Per LambdaFunctionARN, inserisci l'Amazon Resource Name (ARN) della funzione Lambda.
Per S3BucketName, inserisci il nome del bucket Amazon S3.

7.    Scegli Esegui.

Nota: se l'output suggerisce di convalidare e configurare la concorrenza della funzione Lambda, consulta Invocazione asincrona e Dimensionamento delle funzioni AWS Lambda.