Skip to content

shelfio/chrome-aws-lambda-layer

Repository files navigation

Google Chrome for AWS Lambda as a layer

MB (x64) / MB (arm64) Chromium layer for AWS Lambda compressed with Brotli

Sparticuz/chromium published as a Lambda Layer.

Tested with Node.js 16x/18x/20x/22x. Compatible with x86_64 and arm64 architectures. Has Chromium v143.0.0

Getting Started

Click on Layers and choose "Add a layer", and "Provide a layer version ARN" and enter one of the ARNs below based on your Lambda architecture.

For x86_64 (Intel/AMD):

arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-x64:1None

For arm64 (Graviton2):

arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-arm64:1None

When importing the module within lambda, make sure you import @sparticuz/chromium not chrome-aws-lambda

const chromium = require('@sparticuz/chromium');

package.json

  • @sparticuz/chromium marked as a dependency
  • puppeteer-core marked as a dependency

lambda container settings:

  • x86_64 or arm64 architecture
  • =1024mb memory

  • @sparticuz/chromium marked as an externalModule in the bundling settings
  • A lambda layer marked like so (this is CDK code, but convert to SAM or whatever at will):

For x86_64:

layers: [LayerVersion.fromLayerVersionArn(this, 'chromium-lambda-layer',
  'arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-x64:1None'
)]

For arm64:

layers: [LayerVersion.fromLayerVersionArn(this, 'chromium-lambda-layer',
  'arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-arm64:1None'
)]

In the deployed lambda code You can just use a regular ES6 or CommonJS import statement for @sparticuz/chromium, and just use as indicated.

Available regions

x86_64 (Intel/AMD)

  • ap-northeast-1: arn:aws:lambda:ap-northeast-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • ap-northeast-2: arn:aws:lambda:ap-northeast-2:764866452798:layer:chrome-aws-lambda-x64:1None
  • ap-south-1: arn:aws:lambda:ap-south-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • ap-southeast-1: arn:aws:lambda:ap-southeast-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • ap-southeast-2: arn:aws:lambda:ap-southeast-2:764866452798:layer:chrome-aws-lambda-x64:1None
  • ca-central-1: arn:aws:lambda:ca-central-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • eu-north-1: arn:aws:lambda:eu-north-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • eu-central-1: arn:aws:lambda:eu-central-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • eu-west-1: arn:aws:lambda:eu-west-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • eu-west-2: arn:aws:lambda:eu-west-2:764866452798:layer:chrome-aws-lambda-x64:1None
  • eu-west-3: arn:aws:lambda:eu-west-3:764866452798:layer:chrome-aws-lambda-x64:1None
  • sa-east-1: arn:aws:lambda:sa-east-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • us-east-1: arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • us-east-2: arn:aws:lambda:us-east-2:764866452798:layer:chrome-aws-lambda-x64:1None
  • us-west-1: arn:aws:lambda:us-west-1:764866452798:layer:chrome-aws-lambda-x64:1None
  • us-west-2: arn:aws:lambda:us-west-2:764866452798:layer:chrome-aws-lambda-x64:1None

arm64 (Graviton2)

  • ap-northeast-1: arn:aws:lambda:ap-northeast-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • ap-northeast-2: arn:aws:lambda:ap-northeast-2:764866452798:layer:chrome-aws-lambda-arm64:1None
  • ap-south-1: arn:aws:lambda:ap-south-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • ap-southeast-1: arn:aws:lambda:ap-southeast-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • ap-southeast-2: arn:aws:lambda:ap-southeast-2:764866452798:layer:chrome-aws-lambda-arm64:1None
  • ca-central-1: arn:aws:lambda:ca-central-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • eu-north-1: arn:aws:lambda:eu-north-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • eu-central-1: arn:aws:lambda:eu-central-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • eu-west-1: arn:aws:lambda:eu-west-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • eu-west-2: arn:aws:lambda:eu-west-2:764866452798:layer:chrome-aws-lambda-arm64:1None
  • eu-west-3: arn:aws:lambda:eu-west-3:764866452798:layer:chrome-aws-lambda-arm64:1None
  • sa-east-1: arn:aws:lambda:sa-east-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • us-east-1: arn:aws:lambda:us-east-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • us-east-2: arn:aws:lambda:us-east-2:764866452798:layer:chrome-aws-lambda-arm64:1None
  • us-west-1: arn:aws:lambda:us-west-1:764866452798:layer:chrome-aws-lambda-arm64:1None
  • us-west-2: arn:aws:lambda:us-west-2:764866452798:layer:chrome-aws-lambda-arm64:1None

License

MIT © Shelf

About

58 MB Google Chrome to fit inside AWS Lambda Layer compressed with Brotli

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 15