{"id":13522425,"url":"https://github.com/pahud/lambda-layer-headless-chromium","last_synced_at":"2025-04-15T23:12:55.462Z","repository":{"id":69236872,"uuid":"164403613","full_name":"pahud/lambda-layer-headless-chromium","owner":"pahud","description":"AWS Lambda Layer for headless chromium with extra CJK font support","archived":false,"fork":false,"pushed_at":"2019-06-02T05:30:56.000Z","size":8815,"stargazers_count":55,"open_issues_count":3,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-15T23:12:22.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pahud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-07T08:48:47.000Z","updated_at":"2024-05-03T21:20:50.000Z","dependencies_parsed_at":"2023-02-27T23:46:04.069Z","dependency_job_id":null,"html_url":"https://github.com/pahud/lambda-layer-headless-chromium","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pahud%2Flambda-layer-headless-chromium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pahud%2Flambda-layer-headless-chromium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pahud%2Flambda-layer-headless-chromium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pahud%2Flambda-layer-headless-chromium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pahud","download_url":"https://codeload.github.com/pahud/lambda-layer-headless-chromium/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167448,"owners_count":21223506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:00:47.050Z","updated_at":"2025-04-15T23:12:55.438Z","avatar_url":"https://github.com/pahud.png","language":"Makefile","funding_links":[],"categories":["Layers"],"sub_categories":["Utilities"],"readme":"# lambda-layer-headless-chromium\nAWS Lambda Layer for [headless chromium](https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md) with [Noto](https://www.google.com/get/noto/) CJK TC font support.\n\nTwo options to install this layer:\n\n\n# Option 1: Deploy from SAR Console\n\n|        Region        |                    Click and Deploy                     | \n| :----------------: | :----------------------------------------------------------: | \n|  **ap-northeast-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-northeast-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ap-northeast-2**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-northeast-2/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ap-northeast-3**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-northeast-3/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ap-south-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-south-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ap-southeast-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-southeast-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ap-southeast-2**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ap-southeast-2/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **ca-central-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/ca-central-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **eu-central-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/eu-central-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **eu-north-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/eu-north-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **eu-west-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/eu-west-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **eu-west-2**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/eu-west-2/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **eu-west-3**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/eu-west-3/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **sa-east-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/sa-east-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **us-east-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/us-east-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **us-east-2**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/us-east-2/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **us-west-1**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/us-west-1/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n|  **us-west-2**  |[![](https://img.shields.io/badge/SAR-Deploy%20Now-yellow.svg)](https://deploy.serverlessrepo.app/us-west-2/?app=arn:aws:serverlessrepo:us-east-1:903779448426:applications/lambda-layer-headless-chromium)|\n\n# Option 2: Build from Scratch\n\n\n\n## build the layer zip\n\n- Make sure your local environment has installed `docker` and the docker daemon is running otherwise you may encounter `Is docker running?` error(see [#4](https://github.com/pahud/lambda-layer-headless-chromium/issues/4))\n```\n$ make build\n```\n**this will create `layer.zip` in your current directory**\n\n\n## edit Makefile\n\n\n| Name                 | Description                                                  | required to update |\n| -------------------- | ------------------------------------------------------------ | ------------------ |\n| **LAYER_NAME**       | Layer Name                                                   |                    |\n| **LAYER_DESC**       | Layer Description                                            |                    |\n| **S3BUCKET**         | Your S3 bucket to store the intermediate Lambda bundle zip.\u003cbr /\u003eMake sure the S3 bucket in the same region with your Lambda function to deploy. | YES                |\n| **LAMBDA_REGION**    | The region code to deploy your Lambda function               |                    |\n| **LAMBDA_FUNC_NAME** | Lambda function name                                         |                    |\n| **LAMBDA_FUNC_DESC** | Lambda function description                                  |                    |\n| **LAMBDA_ROLE_ARN**  | Lambda IAM role ARN                                          | YES                |\n\n\n## upload and publish your layer\n```\n$ make sam-layer-package sam-layer-deploy\n```\n\n# create your main handler\nedit `main.sh` or check sampe [here](main.sh)\n\n## create your lambda function bundle with the layer\n\n```bash\n$ LayerArn={YOUR_LAYER_ARN} make sam-package sam-deploy\n```\n\ne.g.\n```bash\nLAMBDA_LAYERS=\"arn:aws:lambda:ap-northeast-1:903779448426:layer:headless-chromium-layer:4\" \\\nmake sam-package sam-deploy\n```\nBehind the scene, `SAM` will install [aws-lambda-layer-awscli](https://github.com/aws-samples/aws-lambda-layer-awscli) for you from SAR and package/deploy your Lambda function with your headless-chromium layer.\n\n\n\n## test and validation\n\n```\n$ make invoke\n```\n\nresponse:\n\n```\nR:nss_util.cc(83)] Failed to create /opt/headless-chromium/.pki/nssdb directory.\n[0107/124743.090256:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.comodoca.com\n[0107/124743.090290:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.comodoca.com\n[0107/124743.090319:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: crl.comodoca.com\n[0107/124743.091068:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.comodoca.com\n[0107/124743.091094:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.comodoca.com\n[0107/124743.091118:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: crl.comodoca.com\n[0107/124743.091715:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.usertrust.com\n[0107/124743.091740:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: ocsp.usertrust.com\n[0107/124743.091765:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: crl.usertrust.com\n[0107/124747.324690:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootOcsp.twca.com.tw\n[0107/124747.324798:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootOcsp.twca.com.tw\n[0107/124747.324834:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootCA.twca.com.tw\n[0107/124747.325936:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootOcsp.twca.com.tw\n[0107/124747.325954:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootOcsp.twca.com.tw\n[0107/124747.325969:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootCA.twca.com.tw\n[0107/124747.338978:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: rootocsp.twca.com.tw\n[0107/124747.339006:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: rootocsp.twca.com.tw\n[0107/124747.339031:ERROR:nss_ocsp.cc(582)] No URLRequestContext for NSS HTTP handler. host: RootCA.twca.com.tw\n[0107/124749.181886:INFO:headless_shell.cc(538)] Written to file /tmp/screenshot.png.\n=========[RESPONSE]=======\nupload: ../../tmp/screenshot.png to s3://pahud-tmp-nrt/screenshot.png\nhttps://pahud-tmp-nrt.s3.amazonaws.com/screenshot.png?AWSAccessKeyId=ASIA5E3LT6ZVFH5EFEPU\u0026Expires=1546865570\u0026x-amz-security-token=FQoGZXIvYXdzEAYaDM7Jq2cv%2FR%2FyXiAL5SL7AST7jNh%2F%2BxWFEv69frcV8bJxDhApmWphX6rb6NHp0bRextPJKx%2BUZ7tYveDC2xHdsooNIQgnSD%2BnEWPD6PADgQP6MsvEsYuYqWfHv6D5fr4fajIWkxZgOPDzxDud7GO%2BzOKpEZjpGbP5bAbeclHf2WMCgM%2BWQgF8GEEUAoNDuKTRrx6Kyf78jGtGw0%2BizdLfd3SjIU8jDFO2e6%2B28uPglMOE8CajpxkBhf3jjOsqoacAplYCySnHOk%2FEtvGCsmmQbEOlUmIRDJjK%2B8fTSuQrNj0IjoJ2qQakGhSc5DulvJ9jn35k6qxxdwqFFBiBGwVE2NjIXbaI%2FRQErf84KJmKzeEF\u0026Signature=BlNJlGdAcgnyLjtwjsfPuR1aTLk%3D\n=========[/RESPONSE]=======\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n100  1313  100    16  100  1297   3275   259k --:--:-- --:--:-- --:--:--  316k\n{\"status\":\"OK\"}\nEND RequestId: 6b554111-127a-11e9-b3d3-0317b2c3587b\nREPORT RequestId: 6b554111-127a-11e9-b3d3-0317b2c3587b  Init Duration: 44.76 ms Duration: 9125.78 ms    Billed Duration: 9200 ms        Memory Size: 1536 MB    Max Memory Used: 389 MB\n```\n\nYou will get a presigned URL of the screenshot in the `RESPONSE` like this:\n\n![](https://pbs.twimg.com/media/Dv_35vrU0AAGuTP.jpg)\n\n# SC JP and KR support\n![](screenshot-cn.png)\n![](screenshot-jp.png)\n![](screenshot-kr.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpahud%2Flambda-layer-headless-chromium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpahud%2Flambda-layer-headless-chromium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpahud%2Flambda-layer-headless-chromium/lists"}