I have a problem to build my lambda handler. I'm trying to use sharp library to do an image resize on S3.
My code:
S3.getObject({ Bucket: bucketName, Key: objectKey }, (err, data) => { SHARP(data.Body).resize(250, 250).toFormat("jpg").toBuffer().then((buffer) => { S3.putObject({ Body: buffer, Bucket: bucketName, Key: objectKey, ContentType: "image/jpeg", ContentDisposition: "inline", }) }) });
My node dependencies:
"dependencies": { "aws-sdk": "^2.637.0", "dotenv": "^10.0.0", "mysql": "^2.18.1", "sharp": "^0.29.1", "util": "^0.12.4" }, "devDependencies": { "esbuild": "^0.12.27", "nodemon": "^2.0.12" }
My code to build:
esbuild --bundle --minify --platform=node --target=node12 --outdir=build index.js && cd build && zip index.js.zip index.js
AWS Lambda error:
Cannot find module '../build/Release/sharp-linux-x64.node' Require stack: - /var/task/index.js - /var/runtime/UserFunction.js - /var/runtime/index.js Possible solutions: - Install with the --verbose flag and look for errors: "npm install --ignore-scripts=false --verbose sharp" - Install for the current runtime: "npm install --platform=linux --arch=x64 sharp" - Consult the installation documentation: https://sharp.pixelplumbing.com/install