¿Por qué mi notificación de eventos de Amazon S3 no invoca mi función de Lambda?

4 minutos de lectura
0

He configurado una notificación de eventos de Amazon Simple Storage Service (Amazon S3) para invocar mi función de AWS Lambda. Sin embargo, la función no se invoca cuando se produce el evento de Amazon S3.

Resolución

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Confirmación de que el tipo de evento de Amazon S3 está configurado correctamente

Al configurar una notificación de eventos de Amazon S3, debe especificar qué tipos de eventos de Amazon S3 compatibles hacen que Amazon S3 envíe la notificación. Si se produce un tipo de evento que no ha especificado en su bucket de Amazon S3, Amazon S3 no envía la notificación.

Por ejemplo, una notificación de eventos de Amazon S3 está configurada para invocar Lambda con el evento s3:ObjectCreated:Put. Si carga un archivo grande, el archivo se carga mediante la carga multiparte. El evento s3:ObjectCreated:CompleteMultipartUpload debe seleccionarse con el evento s3:ObjectCreated:Put. También puede usar el tipo de evento s3:ObjectCreated:* para solicitar notificaciones para cualquier API que se haya utilizado para crear un objeto.

Confirmación de que los filtros de nombre clave del objeto incluyen el nombre del archivo cargado

Si las notificaciones de eventos están configuradas para usar el filtrado de nombres de claves de objetos, las notificaciones solo se publican para objetos con prefijos o sufijos específicos. No se puede usar un carácter comodín («*») en los filtros como prefijo o sufijo para representar ningún carácter. Asegúrese de que los filtros de prefijos o sufijos especificados en la notificación de eventos incluyan el nombre de la clave del objeto cargado.

Confirmación de que los filtros de nombre de clave de objeto están en código URL (código por ciento)

Si las notificaciones de eventos están configuradas para usar el filtrado de nombres de claves de objetos, las notificaciones solo se publican para objetos con prefijos o sufijos específicos.

Si utiliza alguno de los siguientes caracteres especiales en sus prefijos o sufijos, debe introducirlos en formato de código URL (código por ciento):

  • Paréntesis («( )»)
  • Rangos de caracteres ASCII 00–1F hex (de 0 a 31 decimales) y 7F (127 decimales)
  • Dólar («$»)
  • Et («&»)
  • Signo más («+»)
  • Coma («,»)
  • Dos puntos («:»)
  • Punto y coma («;»)
  • Signo igual («=»)
  • Signo de interrogación («?»)
  • Arroba («@»)
  • Espacio (« »)

Por ejemplo, para definir el valor de un prefijo como «test=abc/», introduzca «test%3Dabc/» como valor.

Nota: No se puede usar un carácter comodín («*») en los filtros como prefijo o sufijo para representar ningún carácter.

Para obtener más información, consulte las Directrices de nomenclatura de claves de objeto.

Confirmación de que la política de AWS Identity and Access Management (IAM) de su función de Lambda tiene los permisos necesarios

Consulte la política basada en recursos de su función de Lambda para confirmar que permite que su bucket de Amazon S3 invoque la función. Si no es así, añada los permisos necesarios siguiendo las instrucciones que se indican en Concesión de acceso a las funciones a los servicios de AWS.

Para obtener más información, consulte Permisos de AWS Lambda.

Nota: Al añadir una nueva notificación de evento mediante la consola de Amazon S3, los permisos necesarios se añaden automáticamente a la política de la función. Si utiliza la acción put-bucket-notification-configuration en AWS CLI para añadir una notificación de evento, la política de la función no se actualiza automáticamente.

Confirmación de que la función de Lambda está configurada para gestionar invocaciones simultáneas desde las notificaciones de eventos de Amazon S3

La función de Lambda debe estar configurada para gestionar invocaciones simultáneas desde las notificaciones de eventos de Amazon S3. Si las solicitudes de invocación llegan más rápido de lo que la función puede escalar o si la función tiene la máxima concurrencia, Lambda reduce las solicitudes.

Para obtener más información, consulte Invocación asíncrona y Escalado de la función de Lambda.


Información relacionada

¿Cómo puedo solucionar los problemas relacionados con la invocación de una función de Lambda mediante una notificación de eventos de Amazon S3 por medio de Systems Manager Automation?

Uso de AWS Lambda con eventos de Amazon S3

Guía: Configuración de un bucket para notificaciones (tema de SNS o cola de SQS)

Tutorial: Uso de un desencadenador de Amazon S3 para invocar una función de Lambda

¿Por qué aparece el error «No se han podido validar las siguientes configuraciones de destino» cuando creo una notificación de evento de Amazon S3 para invocar una función de Lambda?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año