Ask HN: How was your experience with AWS Lambda in production?
I made an image hosting tool on Lambda and S3, for internal corporate use. Staff can upload images to S3 via an SPA. The front end contacts the Lambda service to request a pre-signed S3 upload URL, so the browser can upload directly to S3. It works really well. Observations:<p>1. Took too long to get something working. The common use case of hooking up a Lambda function to an HTTP endpoint is surprisingly fiddly and manual.<p>2. Very painful logging/monitoring.<p>3. The Node.js version of Lambda has a weird and ugly API that feels like it was designed by a comittee with little knowledge of Node.js idioms.<p>4. The Serverless framework produces a huge bundle unless you spend a lot of effort optimising it. It's also very slow to deploy incremental changes <i>edit:</i> – this is not only due to the large bundle size but also due to having to re-up the whole generated CloudFormation stack for most updates.<p>5. It was worth it in the end for making a useful little service that will exist forever with ultra-low running costs, but the developer experience could have been miles better, and I wouldn't want to have to work on that codebase again.<p>---<p>Edit: here's the code: <a href="https://github.com/Financial-Times/ig-images-backend" rel="nofollow">https://github.com/Financial-Times/ig-images-backend</a><p>To address point 3 above, I wrote a wrapper function (in src/index.js) so I could write each HTTP Lambda endpoint as a straight async function that simply receives a single argument (the request event) and asynchronously <i>returns</i> the complete HTTP response. This wouldn't be good if you were returning a large response though; you'd probably be better streaming it.