The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Use Puppeteer’s page.screenshot({ fullPage: true }) in a Lambda function, launched with a Lambda-compatible Chromium binary. The example below uses puppeteer-core with @sparticuz/chromium, waits for navigation, captures PNG bytes, and returns them as a base64-encoded response. Treat it as a starting pattern, not a deployment tested across every runtime or integration: pin compatible versions and check your function’s packaging and response limits.
Capture a full page in a Node.js Lambda handler
Puppeteer’s fullPage screenshot option captures the full page; it defaults to false. With no output path, page.screenshot() returns image bytes. The example returns those bytes through a synchronous Lambda response, encoded as base64.
As an Amazon Associate I earn from qualifying purchases.
import puppeteer from 'puppeteer-core';
import chromium from '@sparticuz/chromium';
export const handler = async (event) => {
if (!event.url) {
return { statusCode: 400, body: 'Missing url' };
}
const browser = await puppeteer.launch({
args: chromium.args,
executablePath: await chromium.executablePath(),
headless: true,
});
try {
const page = await browser.newPage();
await page.goto(event.url, { waitUntil: 'networkidle2' });
const image = await page.screenshot({ type: 'png', fullPage: true });
return {
statusCode: 200,
headers: { 'content-type': 'image/png' },
isBase64Encoded: true,
body: Buffer.from(image).toString('base64'),
};
} finally {
await browser.close();
}
};
The event must supply a URL, for example {"url":"https://example.com"}. The handler uses ES module imports; configure the project and deployment bundle accordingly, or adapt the imports to your chosen module system. This code does not validate or restrict destination URLs, so add an allowlist or other controls before exposing it as a public screenshot endpoint.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →The screenshot API and options are documented in Puppeteer’s Page.screenshot() reference and ScreenshotOptions reference. The navigation-then-capture flow is also shown in the Puppeteer screenshot guide.
#1 Best Overall
- CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
- WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
- A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
Choose compatible Puppeteer, Chromium, and Node.js versions
Lambda needs a browser executable that works with its runtime and architecture. Puppeteer’s troubleshooting documentation points to the community-maintained @sparticuz/chromium distribution for AWS Lambda. Its project documentation describes Lambda support and extracting browser files under /tmp on first run. Check the selected release’s instructions, architecture support, and compatibility before deployment; these can change.
Version requirements are specific to the release you choose. For example, Puppeteer 25.12.0 documents Node.js 22.12 or later and maps that release to Chrome for Testing 154.0.8037.57. Do not treat those numbers as permanent minimums: consult the Puppeteer system requirements and supported browsers pages for your chosen version, and pin Puppeteer and Chromium dependencies deliberately.
See Puppeteer troubleshooting and the @sparticuz/chromium project for package-specific deployment guidance.
Wait for the page content you actually need
waitUntil: 'networkidle2' is a useful example, not a guarantee that a page is visually complete. Pages may keep network connections open, render content after navigation, or load images only when they are scrolled into view. Choose a readiness condition that matches the target site rather than assuming one navigation event covers every case.
Rank #2
- CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
- 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
- SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
- INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
- THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
- Wait for a known element: use
page.waitForSelector()when the content has a reliable selector. - Wait for application state: if the site exposes a specific ready state, check it before capture.
- Trigger lazy loading: scroll through the page in a deliberate sequence when below-the-fold images or content appear only on scroll, then allow the page to settle.
- Set a bounded wait: pages with ongoing requests may not reach a network-idle condition promptly; use a suitable timeout and site-specific readiness check.
Puppeteer’s screenshot guide demonstrates networkidle2, but no single wait condition is right for every website.
Package the browser for Lambda
Choose a deployment format based on the size of Chromium and its dependencies. AWS documents a 50 MB zipped limit for deployment packages uploaded directly through the Lambda API or SDK, and a 250 MB unzipped limit for zip packages including layers. Lambda container images can be up to 10 GB uncompressed. Larger zip artifacts can be uploaded through S3. Check the current Node.js zip deployment guidance and Lambda quotas before choosing your build and delivery path.
| Deployment form | Documented size limit | Practical implication |
|---|---|---|
| Zip uploaded directly via API or SDK | 50 MB zipped | Check whether the browser bundle and dependencies fit; otherwise use S3 for the artifact or another packaging approach. |
| Zip package, including layers | 250 MB unzipped | Include layers when calculating the uncompressed package total. |
| Container image | 10 GB uncompressed | Offers a larger image ceiling and control over the build environment, with a different deployment workflow. |
Set memory, temporary storage, and timeouts
For standard Lambda functions, AWS documents configurable memory from 128 MB to 10,240 MB, execution duration up to 900 seconds, and /tmp storage from 512 MB to 10,240 MB. AWS notes that CPU allocation rises with memory and that 1,769 MB corresponds to one vCPU. Chromium extraction and screenshot rendering consume temporary disk and memory, but there is no universal setting that fits every page.
Free tools Windows power users keep installed
One-click scans. No signup required.
Start with enough temporary storage for extracted browser files and artifacts, then measure representative pages to set memory and timeout. Revisit the limits in the AWS Lambda quotas documentation; these figures apply to standard functions and may differ for special invocation cases such as Lambda Managed Instances.
Rank #3
- Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
- Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
- Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
- In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
- Ultra-thin bezels: Maximize your viewing experience with thin bezels.
Return the screenshot or store it elsewhere
The sample’s response format depends on the Lambda integration accepting base64-encoded binary responses. AWS lists a 6 MB synchronous request/response payload limit and supports streamed synchronous responses up to 200 MB, subject to service details. A large full-page image may exceed the response path your integration allows.
- Return bytes synchronously when the image is small enough and the caller needs it immediately.
- Upload the image to object storage and return a reference when the image or response flow does not fit the synchronous payload constraints.
Check the relevant integration’s response behavior as well as the Lambda quotas page before relying on direct image responses.
Troubleshooting common failures
Chromium cannot launch
Likely cause: the browser package, Puppeteer release, runtime, or architecture do not match. Fix: verify the selected @sparticuz/chromium release’s Lambda and architecture instructions, pin compatible dependencies, and confirm the executable path returned by chromium.executablePath().
Deployment is rejected for exceeding a size limit
Likely cause: the zipped upload or uncompressed package, including layers, exceeds the applicable limit. Fix: measure the built artifact and use an appropriate delivery route, such as S3 for a larger zip upload or a container image if that fits your deployment workflow.
Rank #4
- CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
- SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
- MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
- KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
- INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient
The screenshot misses images or content near the bottom
Likely cause: lazy-loaded content has not been requested or rendered when capture begins. Fix: scroll through the page or wait for a known content selector or application-ready state before calling screenshot().
Navigation times out or never becomes idle
Likely cause: the site keeps requests open or its loading behavior does not match the selected wait condition. Fix: use a readiness signal suited to that site and set a bounded wait rather than treating network idle as a universal completion test.
The invocation fails while returning the image
Likely cause: the encoded screenshot exceeds a synchronous response limit or the integration expects a different binary response format. Fix: verify the integration’s response requirements and payload ceiling; store the image and return a reference if needed.
The function runs out of memory, disk, or time
Likely cause: the browser extraction, page rendering, or image dimensions exceed the configured resources. Fix: profile representative pages, adjust memory and /tmp storage, and set a timeout that allows the measured workload to finish within the applicable Lambda maximum.
Best Value
- 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
- 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
- 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.
Or skip the browser setup
ScreenshotNeo is a website screenshot API with a one-request Node.js option. It removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. It also offers an MCP server so AI agents can take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
See the ScreenshotNeo API documentation for details. This Node.js example follows the supplied API pattern; set your key and target URL:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Sign up for ScreenshotNeo to get 1,000 free screenshots a month with no card.
Frequently Asked Questions
Does Puppeteer’s full-page screenshot option default to true?
No. The fullPage option defaults to false, so set it to true for a full-page capture.
Can I return a screenshot directly from Lambda?
Yes, if the invocation integration accepts the response format and the image fits its payload limits. Otherwise, upload it to object storage and return a reference.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




