Estoy trabajando en una función Lambda en mi archivo index.js para ayudarme a agregar una marca de agua en las imágenes usando Sharp.
Este es el error que estoy recibiendo.
2022-04-01T20:33:49.269Z undefined ERROR Uncaught Exception {"errorType":"Runtime.UserCodeSyntaxError","errorMessage":"SyntaxError: Invalid or unexpected token","stack":["Runtime.UserCodeSyntaxError: SyntaxError: Invalid or unexpected token"," at _loadUserApp ._loadUserApp (/var/runtime/UserFunction.js:200:13 undefined)"," at Object.module.exports.load (/var/runtime/UserFunction.js:242:17 undefined)"," at Object.<anonymous> (/var/runtime/index.js:43:30 undefined)"," at Module._compile (internal/modules/cjs/loader.js:1085:14 undefined)"," at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10 undefined)"," at Module.load (internal/modules/cjs/loader.js:950:32 undefined)"," at Function.Module._load (internal/modules/cjs/loader.js:790:12 undefined)"," at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12 undefined)"," at internal/main/run_main_module.js:17:47"]} Me di cuenta de que el problema estaba ocurriendo cuando importé un archivo .png .
const sharp = require('sharp'); const { S3 } = require('aws-sdk'); const stream = require('stream'); const playButtonPng = require('./assets/playButton.png'); // When this is commented out, the Lambda worksPensé en quizás "sacar" esta imagen de S3, pero se vuelve complejo ya que Sharp requiere una "imagen real".
Entonces mi pregunta es: ¿es posible importar un .png local en una función lambda? Intenté investigar pero no encontré ningún resultado.
14.x ya que estoy usando v14.18.3 localmentenode_module sharp para la producción. (No creo que esto haya sido nunca el problema).También he mirado estos hilos, que sugerían
cargue el archivo PNG por readFile / readFileSync disponible en el módulo fs .
var fs = require('fs') const playButtonPng = fs.readFileSync('./assets/playButton.png')