Estoy jugando con este convertidor de PDF a imagen y he clonado el repositorio, npm install y cambié esta sección:
var s3EventHandler = new S3EventHandler({ region: 'my-region', outputBucketName: 'my-bucket-name' s3: s3, resolution: 72 });Le cambié el nombre a export.js, comprimí la carpeta js, node_modules, package.json y event.json (también probé con estos dos json eliminados) y lo cargué en mi función Lambda. Se ha creado el disparador s3 y hasta ahora funciona bien.
Tuve varias pruebas fallidas porque no pudo encontrar ni el módulo asíncrono ni el módulo tmp, que moví al nivel superior y parece solucionarlo (sin embargo, no se queja de los otros módulos que requiere y no están en el nivel superior).
En la prueba, se queja de que s3 no está definido, con lo que estoy un poco perdido, ya que no hay muchos detalles. Pensé que podría ser que solo estoy ejecutando la prueba, por lo que falta el disparador s3 consigo mismo.
Cuando cargo un pdf en el depósito, Lambda informa que se ejecuta pero falla. Entrar en CloudWatch Logs dice que no hay flujo de registro para ello. Revisé el rol de IAM y tiene permisos para CreateLogStream y PutLogEvents (era la política de IAM con plantilla).
¿Cómo puedo hacer que mis registros funcionen para encontrar el problema? ¿O qué puedo hacer para solucionar el problema de s3 no definido, que es mi única pista? Podría estar relacionado con el requisito del módulo de nivel superior, sin embargo, eso no parece consistente ya que solo algunos módulos deben estar en el nivel superior.
Parece que falta el permiso "CreateLogGroup" de lo que ha mencionado. Se requieren los siguientes permisos para que lambda escriba registros en CloudWatch
"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"