Hacker News new | ask | show | jobs
by mulhoon 1545 days ago
Puppeteer-core can already fit in a lambda around 60mb and can be used for web scraping, taking screenshots, or performance testing.
2 comments

How’s the overhead? Are you launching full chrome every lambda invocation?
In one lambda I can load chrome, visit a website, take a screenshot and save it to S3 in around 2s with around 280mb memory used. You could keep chrome open and reuse it if available, but you can't count on it with lambda being stateless.

I use this Chromium binary https://www.npmjs.com/package/chrome-aws-lambda

> lambda being stateless

/tmp is ephemeral in the sense that it dies with the Lambda instance, but it is also persistent between multiple serial invocations landing on that instance, even if the instance is frozen and thawed between some of those invocations.

The process memory state on the instance (set up during the Init phase) is also available between invocations.

https://docs.aws.amazon.com/lambda/latest/dg/runtimes-contex...

You can't count on that freezing and thawing process, it's not guaranteed at all. The whole point of Lambda/FaaS in general is that each invocation might be truly ephemeral, depending on factors that are largely beyond any single user's control.
this package requires using JS for your stack. your options are much slimmer for other languages.
Does that work outside of JS?