October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

How to Schedule Website Screenshots in AWS Lambda

A practical guide to scheduling website screenshots with EventBridge Scheduler and Lambda, from browser packaging and S3 storage to retries, monitoring, and cost.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Amazon EventBridge Scheduler to invoke an AWS Lambda function on a one-time or recurring schedule. The function runs a compatible headless browser, captures the page, then uploads the image to durable storage such as Amazon S3. Scheduler handles the timer; your code still needs to manage browser compatibility, timeouts, duplicate deliveries, storage, and failure monitoring.

Choose a schedule that matches the capture job

EventBridge Scheduler supports one-time schedules and recurring schedules defined with rate or cron expressions. Use a rate expression for an elapsed interval, such as every 15 minutes, and cron for calendar-style timing. Scheduler also supports time zones and daylight-saving adjustments. If you enable a flexible time window, an invocation may occur within that window rather than at its opening instant.

Do not treat a scheduled time as an exact-second guarantee. AWS says invocations can occur at different seconds within the scheduled minute; its examples include hourly invocations at 2:00:45 PM, 3:00:32 PM, and 4:00:18 PM. Cron schedules faster than once per minute are unsupported. See EventBridge Scheduler schedule types and AWS Scheduler troubleshooting guidance.

Scheduler offers time zones, one-time scheduling, flexible windows, customized target input, and schedule resources independent of an event bus. Legacy EventBridge scheduled rules remain available, but Scheduler is the more feature-rich option for a new timer-driven capture workflow. AWS describes the comparison in its schedule types documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)

Configure Scheduler to invoke Lambda

  1. In the Lambda console, open the function and choose Add trigger.
  2. Select Scheduler, then choose a schedule name and group.
  3. Choose a one-time or recurring schedule, and set its date, time zone, rate, or cron expression as appropriate.
  4. Optionally provide JSON input for the function, such as the target URL or a site identifier.
  5. Configure the Scheduler execution role. It needs permission to invoke the target Lambda function, including lambda:InvokeFunction. The console can create a role; infrastructure-as-code or manual deployments must provide the role and target permissions.
  6. Set retry and event-retention behavior, and configure a dead-letter queue if failed delivery must be investigated or replayed.

Scheduler invokes Lambda asynchronously. Keep its execution role separate from the Lambda execution role: the former authorizes invocation, while the latter grants the function access to services it uses, such as writing to an S3 bucket. Scope both roles to the resources and actions actually needed. Follow the Lambda scheduling setup for console and deployment paths.

Package and run a compatible browser

Your handler needs a browser executable and its runtime dependencies compatible with the Lambda runtime, architecture, and deployment package. AWS documents the platform limits but does not endorse a particular Puppeteer or Chromium build. Validate your chosen browser in the actual target runtime; a package that works on a developer laptop may fail in Lambda because of missing libraries, architecture mismatch, permissions, or different launch requirements.

The handler’s essential sequence is:

  1. Read and validate the requested target URL.
  2. Launch the browser and open a page.
  3. Navigate with a bounded timeout and wait for the page condition that matters to the capture.
  4. Capture the screenshot and write it to temporary storage or directly to an upload stream.
  5. Upload the completed image to durable storage, log the result, and close page and browser resources before returning.

Choose an explicit navigation wait condition and timeout rather than waiting indefinitely for all network activity. Pages with analytics, streaming requests, or long-lived connections may never become network-idle. For dynamic pages, wait for a meaningful selector or a short bounded delay after navigation. Log the target identifier, outcome, and storage key, but avoid logging sensitive page contents, credentials, or private query parameters.

Lambda limits that shape the design

  • Runtime: A standard Lambda function timeout can be configured up to 900 seconds (15 minutes). This is a platform ceiling, not a recommendation to let a screenshot run that long. Set a shorter operational timeout appropriate to the site and leave time for upload and cleanup. AWS documents the current limit in its Lambda quotas.
  • Container image: Lambda container images can be up to 10 GB uncompressed. This can suit a browser bundle with substantial dependencies, but image size alone does not establish that the browser will run correctly. See Lambda container images.
  • Temporary storage: The /tmp directory is configurable from 512 MB to 10,240 MB. It is temporary working space, not durable screenshot storage. See Lambda ephemeral storage.

ZIP plus layer or container image?

There is no universally best packaging method established for browser screenshots. Compare a ZIP and layer against a container image based on browser dependency size, runtime compatibility, how you build and update the artifact, cold-start behavior, and deployment limits. Whichever you choose, test the packaged artifact in Lambda with the intended architecture and memory, not only locally.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Save screenshots durably and make captures identifiable

Use /tmp only for browser files or intermediate output, then upload the finished screenshot to S3 or another durable destination. A key pattern such as site-id/YYYY/MM/DD/HH-mm-ssZ.png makes a historical series sortable by UTC capture time. If readers need only the latest image, a stable per-site key can be simpler; consider keeping a timestamped history separately when auditability or comparison matters.

Decide deliberately how long captures should remain and who can read them. Choose bucket access controls, encryption, and lifecycle retention to fit the data and use case; the AWS sample demonstrates S3 as a destination but does not prescribe these policies. Do not make the bucket public merely to display a screenshot unless that exposure is intentional.

Rank #3
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Make retries safe and monitor completed captures

EventBridge Scheduler provides at-least-once delivery, so duplicate invocations are possible. If duplicates would create confusing files or repeat downstream work, use deterministic object keys, conditional writes, or another deduplication strategy. Choose the key semantics carefully: a timestamp generated at execution time may differ across duplicate attempts, while a stable schedule input or intended capture window can help identify the same logical run.

Configure retry limits and retention for unprocessed events, and use a dead-letter queue when failures need review or replay. For universal targets, AWS warns that Scheduler validates target ARN format but not the downstream API input; validate the payload yourself and verify the path with a one-time schedule first. See managing schedules and troubleshooting Scheduler.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Lambda CloudWatch logs to determine whether the function started, whether the page loaded, whether capture succeeded, and whether the S3 upload completed. Scheduler metrics such as InvocationAttemptCount, TargetErrorCount, TargetErrorThrottledCount, and InvocationDroppedCount can help identify delivery problems. AWS describes these metrics as best-effort, so pair them with application-level completion logs and, when a missing file matters, an S3 object or other completion signal. See Scheduler CloudWatch monitoring.

Rank #4
Raspberry Pi 4 Computer Model B 8GB Single Board Computer Suitable for Building Mini PC/Smart Robot/Game Console/Workstation/Media Center/Etc.
  • powful cputhe cpu of the raspberry pi 4 model b adopts the latest arm cortex-a72 architecture, which is also used in high-performance smartphones, and has evolved into a real pc.the operating clock has been changed from pi3's 1.2ghz to 1.5ghz, and the speed has become a different dimension with the updated architecture.
  • video output/gputhe on-board gpu of the raspberry pi 4 supports 4kp@60 and newly supports h.265 decoding, opengl es 3.0, etc.as for the video output, two micro hdmis with smaller connectors are installed, and the raspberry pi 4 also supports dual screen output.
  • usb 3.0with a new soc, the speed of the raspberry pi 4 around i/o has been improved, and finally usb 3.0 is supported.usb boot is faster and more convenient.
  • network&bluetoothgigabit ethernet (wired lan) has also been significantly speeded up from 300mbps of pi 3b + to 1000mbps (logical value).in addition, bluetooth supported version has been upgraded to 5.0, and the transfer speed of pi 4 has been doubled.
  • power input connectorthe power input connector of the raspberry pi 4 has been changed to usb type c. it is easier to use than micro usb and can supply a larger current reliably.the power requirement of raspberry pi 4 model b is 5v 3.0a, which is higher than the previous model.

Estimate cost and capacity for your workload

There is no meaningful fixed cost for a screenshot schedule without assumptions about cadence, number of schedules, function memory and duration, browser startup, network behavior, storage retention, and logging. The AWS sample warns that charges may apply after Free Tier usage; use current AWS pricing for the selected Region and your expected workload instead of relying on the sample’s older cost context.

For capacity planning, AWS lists a default quota of 10,000,000 schedules per Region, adjustable, and a default invocation throttle limit of 1,000 invocations per second in primary Regions; other Regions can differ and quotas are adjustable. These are service limits, not evidence that a particular browser workload can sustain that volume. Check the Scheduler quotas for the Region and current limits.

At high cadence, browser startup, page load time, and concurrent runs can matter more than the schedule definition. Keep capture duration bounded, avoid overlapping work where it would overload the target site, and use the observed Lambda duration and storage growth to refine cadence and retention.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
SANOOV Raspberry Pi 5 4GB Kit, 4GB RAM Single Board Computer with Active Cooler and ABS Case, Complete Raspberry Pi 5 Starter Kit for IoT Robotics Retro Gaming
  • All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
  • Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
  • Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
  • Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
  • Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common failures and fixes

  • Scheduler runs but Lambda is not invoked: Check the schedule state, target ARN and execution role trust and permissions, especially lambda:InvokeFunction. Review Scheduler delivery metrics and configured retry or dead-letter behavior.
  • Lambda starts but the browser will not launch: Verify that the browser executable, dependent libraries, architecture, and runtime match the deployed package. Reproduce against the packaged artifact and Lambda runtime rather than changing unrelated timeout settings first.
  • Navigation times out or captures an incomplete page: Set a bounded navigation timeout and wait for a condition relevant to the page. For sites with persistent network activity, avoid an unbounded network-idle wait; wait for a selector or a bounded delay instead.
  • Function times out after capture: Leave time for image encoding, S3 upload, and browser cleanup. Raise the timeout only within the 900-second Lambda maximum and investigate slow navigation or oversized work.
  • Temporary disk fills up: Browser caches and intermediate files consume /tmp. Clean up per invocation and configure ephemeral storage for the expected working set; do not use it as the archive.
  • Duplicate images appear: Account for at-least-once delivery with idempotent keys or deduplication based on the intended scheduled capture, not solely a fresh execution timestamp.
  • No screenshot exists despite a successful invocation: A delivered invocation is not proof of a valid image. Log capture and upload success separately, validate the object key and bucket permissions, and alert on missing completion signals.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return an image or PDF, so you can use its endpoint from a scheduled function instead of packaging and maintaining a browser. See the ScreenshotNeo API documentation for request options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Cookie banners, newsletter popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. An MCP server lets AI agents take screenshots, and 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000.

Create a free ScreenshotNeo account to get started.

Implementation reference and age caveat

AWS’s sample repository illustrates the broad pattern of periodic website capture and S3 storage, but it specifies Node.js 12.x and is dated. Use it as an architectural example, not as current runtime instructions: AWS Lambda Puppeteer screenshot sample.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Can EventBridge Scheduler run a screenshot only once in the future?

Yes. Create a one-time schedule with the desired date, time, and time zone.

Can a Lambda screenshot job run longer than 15 minutes?

No. The standard Lambda function timeout is capped at 900 seconds; a job that cannot fit within that ceiling needs a different execution design.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 3
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. Shenzhen desk3 min
    HONOR Expands Beyond Smartphones With Humanoid Robot RevealHONOR said it unveiled its first humanoid robot at MWC 2026 and named shopping assistance, workplace inspections, and supportive companionship as intended uses. Later Robotics D1 claims and a reported…
  2. Cupertino desk5 min
    Apple Unveils AirPods Max 2: The Upgrade That Should Have Happened Years AgoAirPods Max 2 adds H2-powered audio features and Apple claims up to 1.5× more effective ANC, but its design, Smart Case, and 20-hour battery rating are unchanged. Wired lossless audio…
  3. Cupertino desk4 min
    Apple’s OLED Touch MacBooks Are Coming—but the Dynamic Island Is the Real GambleApple has not announced an OLED touchscreen MacBook, but reports point to high-end models arriving in late 2026 or early 2027. The reported Mac Dynamic Island could be useful, but…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.