Chromium for Serverless platforms (Lambda/nodejs:v18, Puppeteer)
611
version: "3"
services:
chromium:
image: hoanghd/chromium:24
restart: always
ports:
- 9000:8080
volumes:
- .:/var/task/
command: index.handler
import chromium from '@sparticuz/chromium'
import puppeteer from 'puppeteer-core'
export const handler = async(event) => {
chromium.setHeadlessMode = true
chromium.setGraphicsMode = false
const browser = await puppeteer.launch({
args: chromium.args,
ignoreHTTPSErrors: true,
headless: chromium.headless,
defaultViewport: chromium.defaultViewport,
executablePath: await chromium.executablePath()
})
try {
const page = await browser.newPage()
await page.goto('https://gallery.ecr.aws/lambda/nodejs', {waitUntil: 'networkidle2'})
console.log(await page.title())
}
catch( error ){
console.dir({event, error})
}
await browser.close()
return {}
}
docker-compose up
curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"payload":"hello world!"}'
Content type
Image
Digest
sha256:2ad9cf170…
Size
533.9 MB
Last updated
about 1 month ago
docker pull hoanghd/chromium:24