0

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 
3
  • This question might be better on server fault. The message says it can't find sharp, but exactly why is more a question for developers than infrastructure people I think. I use AWS SAM to do deployments of the odd bit of software I need to deploy Commented Sep 14, 2021 at 8:31
  • I thought about AWS SAM, but how I'm new on this world, I have fear to configure that in a development machine, but is a good way, I can try this. Thanks for the tips, @Tim! Commented Sep 14, 2021 at 12:28
  • AWS SAM may help with dependencies and deployment. I found it easier than trying to do packaging and such myself. It's not super complex but it does take a little bit of time to learn and get working, but should hopefully save time overall. Commented Sep 14, 2021 at 18:37

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.