Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The current Chromium Binary doesn't work for AWS nodejs10.x runtime #37

Closed
wohckcin opened this issue May 14, 2019 · 87 comments
Closed
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@wohckcin
Copy link

First of all, a big thank you for your such amazing work for this project.

We've been using the Chromium Binary file from this project as AWS Lambda Layer for a while. It works flawlessly on runtime 8.10. However, since AWS just announced supports for Nodejs10.x. We didn't hesitate to upgrade our lambda functions and it ended up breaking our builds.

The error we are getting from local tests is error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory. And I also noticed that AWS changed to use Amazon Linux 2 instead of Amazon Linux as Nodejs 10 Lambda Operation System. That might change a lot of shared libs or dependencies. Please find more information with the link below:

https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

I just hope that this project can add supports for AWS nodejs10.x runtime in the near future.

Cheers,

Nick

@alixaxel alixaxel added the enhancement New feature or request label May 14, 2019
@alixaxel
Copy link
Owner

@nickychow Latest version (1.16.0) ships with Node 10.x support.

@alixaxel alixaxel reopened this May 14, 2019
@alixaxel
Copy link
Owner

Sorry for the false report, I've unpublished 1.16.0 for the time being,

Will need some more time to properly compile libnss.

@alixaxel alixaxel mentioned this issue May 14, 2019
@StephanBijzitter
Copy link

(same problem as OP), but I also want to express my gratitude to the author for publishing the package and the very rapid response above.

@alixaxel
Copy link
Owner

alixaxel commented May 18, 2019

So just to give a status update on this, it seems that under the new execution environment the following shared objects are required - and they add about 530 KiB after Brotli compression:

  • libexpat.so.1
  • libnss3.so
  • libnssutil3.so
  • libuuid.so.1

Despite patching up the Lambda environment with these additional dependencies, I still haven't managed to be able to boot up Chromium correctly, it seems to be related to changes in the Fontconfig configuration:

[0518/014539.480656:WARNING:resource_bundle.cc(357)] locale_file_path.empty() for locale 
Fontconfig error: Cannot load default config file

DevTools listening on ws://127.0.0.1:33083/devtools/browser/5348c50e-97fd-4caa-9929-ce1e0ecced2c
[0518/014539.489401:FATAL:platform_font_skia.cc(91)] Check failed: InitDefaultFont(). Could not find the default font
#0 0x559c1bd91d29 <unknown>
#1 0x559c1bd15d73 <unknown>
#2 0x559c1bd152b0 <unknown>
#3 0x559c1c6b865e <unknown>
#4 0x559c1c6b997b <unknown>
#5 0x559c1c6b1ade <unknown>
#6 0x559c1af26a8e <unknown>
#7 0x559c1b02a4af <unknown>
#8 0x559c1adab98e <unknown>
#9 0x559c1adab33e <unknown>
#10 0x559c1adaadf2 <unknown>
#11 0x559c1ad622a6 <unknown>
#12 0x559c1ad81341 <unknown>
#13 0x559c1ad68617 <unknown>
#14 0x559c1ad68028 <unknown>
#15 0x559c1d36e64b <unknown>
#16 0x559c1bdb23c9 <unknown>
#17 0x559c1bcfa3c7 <unknown>
#18 0x559c1ab27b4f <unknown>
#19 0x559c1a29bd57 <unknown>
#20 0x559c1acd153e <unknown>
#21 0x559c1bd69ae9 <unknown>
#22 0x559c1bd42c5d <unknown>
#23 0x559c1bd5183e <unknown>
#24 0x559c1bd51538 <unknown>
#25 0x559c1bda6289 <unknown>
#26 0x559c1bd52119 <unknown>
#27 0x559c1bd30317 <unknown>
#28 0x559c1ac2cedb <unknown>
#29 0x559c1ac2cd3d <unknown>
#30 0x559c1ac2ea62 <unknown>
#31 0x559c1d377336 <unknown>
#32 0x559c1bcc75bb <unknown>
#33 0x559c1bcc7276 <unknown>
#34 0x559c1d2175eb <unknown>
#35 0x559c1bcc0981 <unknown>
#36 0x559c1bcfe4cd <unknown>
#37 0x559c1bcfe219 <unknown>
#38 0x7f7cb976d02a __libc_start_main
#39 0x559c1a24802a _start
Task trace:
#0 0x559c1bcf9f7b <unknown>
#1 0x559c1bcf9f7b <unknown>

Received signal 6
#0 0x559c1bd91d29 <unknown>
#1 0x559c1bd15d73 <unknown>
#2 0x559c1bd918b1 <unknown>
#3 0x7f7cba2a51f0 <unknown>
#4 0x7f7cb9780760 __GI_raise
#5 0x7f7cb9781d41 __GI_abort
#6 0x559c1bd906e5 <unknown>
#7 0x559c1bd155d3 <unknown>
#8 0x559c1c6b865e <unknown>
#9 0x559c1c6b997b <unknown>
#10 0x559c1c6b1ade <unknown>
#11 0x559c1af26a8e <unknown>
#12 0x559c1b02a4af <unknown>
#13 0x559c1adab98e <unknown>
#14 0x559c1adab33e <unknown>
#15 0x559c1adaadf2 <unknown>
#16 0x559c1ad622a6 <unknown>
#17 0x559c1ad81341 <unknown>
#18 0x559c1ad68617 <unknown>
#19 0x559c1ad68028 <unknown>
#20 0x559c1d36e64b <unknown>
#21 0x559c1bdb23c9 <unknown>
#22 0x559c1bcfa3c7 <unknown>
#23 0x559c1ab27b4f <unknown>
#24 0x559c1a29bd57 <unknown>
#25 0x559c1acd153e <unknown>
#26 0x559c1bd69ae9 <unknown>
#27 0x559c1bd42c5d <unknown>
#28 0x559c1bd5183e <unknown>
#29 0x559c1bd51538 <unknown>
#30 0x559c1bda6289 <unknown>
#31 0x559c1bd52119 <unknown>
#32 0x559c1bd30317 <unknown>
#33 0x559c1ac2cedb <unknown>
#34 0x559c1ac2cd3d <unknown>
#35 0x559c1ac2ea62 <unknown>
#36 0x559c1d377336 <unknown>
#37 0x559c1bcc75bb <unknown>
#38 0x559c1bcc7276 <unknown>
#39 0x559c1d2175eb <unknown>
#40 0x559c1bcc0981 <unknown>
#41 0x559c1bcfe4cd <unknown>
#42 0x559c1bcfe219 <unknown>
#43 0x7f7cb976d02a __libc_start_main
#44 0x559c1a24802a _start
  r8: 0000000000000000  r9: 00007ffcdcf19190 r10: 0000000000000008 r11: 0000000000000246
 r12: 00007ffcdcf193f8 r13: 0000000000000075 r14: 00007ffcdcf1ac18 r15: 00007ffcdcf1ac10
  di: 0000000000000002  si: 00007ffcdcf19190  bp: 00007ffcdcf193e0  bx: 0000000000000006
  dx: 0000000000000000  ax: 0000000000000000  cx: 00007f7cb9780760  sp: 00007ffcdcf19190
  ip: 00007f7cb9780760 efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

I'm recompiling Chromium with the headless_fontconfig_utils = true build flag now.

EDIT: The headless_fontconfig_utils = true build flag didn't help at all.

@alixaxel
Copy link
Owner

alixaxel commented May 18, 2019

So yeah, on Node 8.10 we have:

$ lambdash 'echo $AWS_EXECUTION_ENV && ls /etc/fonts/fonts.conf'
AWS_Lambda_nodejs8.10
/etc/fonts/fonts.conf

On Node 10.x however:

$ lambdash 'echo $AWS_EXECUTION_ENV && ls /etc/fonts/fonts.conf'
AWS_Lambda_nodejs10.x
ls: cannot access /etc/fonts/fonts.conf: No such file or directory

The contents of /etc/fonts/fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
	DO NOT EDIT THIS FILE.
	IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
	LOCAL CHANGES BELONG IN 'local.conf'.

	The intent of this standard configuration file is to be adequate for
	most environments.  If you have a reasonably normal environment and
	have found problems with this configuration, they are probably
	things that others will also want fixed.  Please submit any
	problems to the fontconfig bugzilla system located at fontconfig.org

	Note that the normal 'make install' procedure for fontconfig is to
	replace any existing fonts.conf file with the new version.  Place
	any local customizations in local.conf which this file references.

	Keith Packard
-->

<!-- Font directory list -->

	<dir>/usr/share/fonts</dir>
	<dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>
	<dir>~/.fonts</dir>

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
	<match target="pattern">
		<test qual="any" name="family">
			<string>mono</string>
		</test>
		<edit name="family" mode="assign">
			<string>monospace</string>
		</edit>
	</match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
	<match target="pattern">
		<test qual="any" name="family">
			<string>sans serif</string>
		</test>
		<edit name="family" mode="assign">
			<string>sans-serif</string>
		</edit>
	</match>

<!--
  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
	<match target="pattern">
		<test qual="any" name="family">
			<string>sans</string>
		</test>
		<edit name="family" mode="assign">
			<string>sans-serif</string>
		</edit>
	</match>

<!--
  Load local system customization file
-->
	<include ignore_missing="yes">conf.d</include>

<!-- Font cache directory list -->

	<cachedir>/var/cache/fontconfig</cachedir>
	<cachedir>~/.fontconfig</cachedir>

	<config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->
		<blank>
			<int>0x0020</int>	<!-- SPACE -->
			<int>0x00A0</int>	<!-- NO-BREAK SPACE -->
			<int>0x00AD</int>	<!-- SOFT HYPHEN -->
			<int>0x034F</int>	<!-- COMBINING GRAPHEME JOINER -->
			<int>0x0600</int>	<!-- ARABIC NUMBER SIGN -->
			<int>0x0601</int>	<!-- ARABIC SIGN SANAH -->
			<int>0x0602</int>	<!-- ARABIC FOOTNOTE MARKER -->
			<int>0x0603</int>	<!-- ARABIC SIGN SAFHA -->
			<int>0x06DD</int>	<!-- ARABIC END OF AYAH -->
			<int>0x070F</int>	<!-- SYRIAC ABBREVIATION MARK -->
			<int>0x115F</int>	<!-- HANGUL CHOSEONG FILLER -->
			<int>0x1160</int>	<!-- HANGUL JUNGSEONG FILLER -->
			<int>0x1680</int>	<!-- OGHAM SPACE MARK -->
			<int>0x17B4</int>	<!-- KHMER VOWEL INHERENT AQ -->
			<int>0x17B5</int>	<!-- KHMER VOWEL INHERENT AA -->
			<int>0x180E</int>	<!-- MONGOLIAN VOWEL SEPARATOR -->
			<int>0x2000</int>	<!-- EN QUAD -->
			<int>0x2001</int>	<!-- EM QUAD -->
			<int>0x2002</int>	<!-- EN SPACE -->
			<int>0x2003</int>	<!-- EM SPACE -->
			<int>0x2004</int>	<!-- THREE-PER-EM SPACE -->
			<int>0x2005</int>	<!-- FOUR-PER-EM SPACE -->
			<int>0x2006</int>	<!-- SIX-PER-EM SPACE -->
			<int>0x2007</int>	<!-- FIGURE SPACE -->
			<int>0x2008</int>	<!-- PUNCTUATION SPACE -->
			<int>0x2009</int>	<!-- THIN SPACE -->
			<int>0x200A</int>	<!-- HAIR SPACE -->
			<int>0x200B</int>	<!-- ZERO WIDTH SPACE -->
			<int>0x200C</int>	<!-- ZERO WIDTH NON-JOINER -->
			<int>0x200D</int>	<!-- ZERO WIDTH JOINER -->
			<int>0x200E</int>	<!-- LEFT-TO-RIGHT MARK -->
			<int>0x200F</int>	<!-- RIGHT-TO-LEFT MARK -->
			<int>0x2028</int>	<!-- LINE SEPARATOR -->
			<int>0x2029</int>	<!-- PARAGRAPH SEPARATOR -->
			<int>0x202A</int>	<!-- LEFT-TO-RIGHT EMBEDDING -->
			<int>0x202B</int>	<!-- RIGHT-TO-LEFT EMBEDDING -->
			<int>0x202C</int>	<!-- POP DIRECTIONAL FORMATTING -->
			<int>0x202D</int>	<!-- LEFT-TO-RIGHT OVERRIDE -->
			<int>0x202E</int>	<!-- RIGHT-TO-LEFT OVERRIDE -->
			<int>0x202F</int>	<!-- NARROW NO-BREAK SPACE -->
			<int>0x205F</int>	<!-- MEDIUM MATHEMATICAL SPACE -->
			<int>0x2060</int>	<!-- WORD JOINER -->
			<int>0x2061</int>	<!-- FUNCTION APPLICATION -->
			<int>0x2062</int>	<!-- INVISIBLE TIMES -->
			<int>0x2063</int>	<!-- INVISIBLE SEPARATOR -->
			<int>0x206A</int>	<!-- INHIBIT SYMMETRIC SWAPPING -->
			<int>0x206B</int>	<!-- ACTIVATE SYMMETRIC SWAPPING -->
			<int>0x206C</int>	<!-- INHIBIT ARABIC FORM SHAPING -->
			<int>0x206D</int>	<!-- ACTIVATE ARABIC FORM SHAPING -->
			<int>0x206E</int>	<!-- NATIONAL DIGIT SHAPES -->
			<int>0x206F</int>	<!-- NOMINAL DIGIT SHAPES -->
			<int>0x2800</int>	<!-- BRAILLE PATTERN BLANK -->
			<int>0x3000</int>	<!-- IDEOGRAPHIC SPACE -->
			<int>0x3164</int>	<!-- HANGUL FILLER -->
			<int>0xFEFF</int>	<!-- ZERO WIDTH NO-BREAK SPACE -->
			<int>0xFFA0</int>	<!-- HALFWIDTH HANGUL FILLER -->
			<int>0xFFF9</int>	<!-- INTERLINEAR ANNOTATION ANCHOR -->
			<int>0xFFFA</int>	<!-- INTERLINEAR ANNOTATION SEPARATOR -->
			<int>0xFFFB</int>	<!-- INTERLINEAR ANNOTATION TERMINATOR -->
		</blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
 -->
		<rescan>
			<int>30</int>
		</rescan>
	</config>

</fontconfig>

And the contents of /usr/share/fonts directory:

/usr/share/fonts:
total 16
319742 drwxr-xr-x  4 root root 4096 Apr 17 09:08 .
311527 drwxr-xr-x 75 root root 4096 Apr 17 09:09 ..
 19958 drwxr-xr-x  4 root root 4096 Apr 17 09:08 default
 19959 drwxr-xr-x  2 root root 4096 Apr 17 09:08 dejavu

/usr/share/fonts/default:
total 16
 19958 drwxr-xr-x 4 root root 4096 Apr 17 09:08 .
319742 drwxr-xr-x 4 root root 4096 Apr 17 09:08 ..
 19961 drwxr-xr-x 2 root root 4096 Apr 17 09:07 ghostscript
 19960 drwxr-xr-x 2 root root 4096 Apr 17 09:08 Type1

/usr/share/fonts/default/ghostscript:
total 1268
19961 drwxr-xr-x 2 root root  4096 Apr 17 09:07 .
19958 drwxr-xr-x 4 root root  4096 Apr 17 09:08 ..
20541 -rw-r--r-- 1 root root  5031 Nov 24  1999 fcyr.afm
20542 -rw-r--r-- 1 root root 36052 Aug 25  1994 fcyr.gsf
20543 -rw-r--r-- 1 root root  6195 Nov 24  1999 fcyri.afm
20544 -rw-r--r-- 1 root root 44539 Aug 25  1994 fcyri.gsf
20545 -rw-r--r-- 1 root root 38927 Aug 25  1994 fhirw.gsf
20546 -rw-r--r-- 1 root root   664 May  1  1993 fhirw.pfm
20547 -rw-r--r-- 1 root root 40247 Nov 30  1999 fkarw.gsf
20548 -rw-r--r-- 1 root root   664 May  1  1993 fkarw.pfm
20549 -rw-r--r-- 1 root root  1767 Apr 17 09:07 fonts.dir
20550 -rw-r--r-- 1 root root  1767 Apr 17 09:07 fonts.scale
20552 -rw-r--r-- 1 root root   826 Dec 24  1998 hrgerb.gsf
20553 -rw-r--r-- 1 root root   830 Dec 24  1998 hrgerd.gsf
20554 -rw-r--r-- 1 root root   831 Dec 24  1998 hrgero.gsf
20551 -rw-r--r-- 1 root root 58276 Oct  2  1993 hrger.pfa
20555 -rw-r--r-- 1 root root  8964 Aug 25  1994 hrgkc.gsf
20556 -rw-r--r-- 1 root root  7036 Aug 25  1994 hrgks.gsf
20558 -rw-r--r-- 1 root root   824 Dec 24  1998 hrgrrb.gsf
20559 -rw-r--r-- 1 root root   829 Dec 24  1998 hrgrro.gsf
20557 -rw-r--r-- 1 root root 57602 Oct  2  1993 hrgrr.pfa
20561 -rw-r--r-- 1 root root   826 Dec 24  1998 hritrb.gsf
20562 -rw-r--r-- 1 root root   831 Dec 24  1998 hritro.gsf
20560 -rw-r--r-- 1 root root 51555 Oct  2  1993 hritr.pfa
20564 -rw-r--r-- 1 root root   822 Dec 24  1998 hrpldb.gsf
20565 -rw-r--r-- 1 root root   836 Dec 24  1998 hrpldbi.gsf
20566 -rw-r--r-- 1 root root 42729 Oct  2  1993 hrpldi.pfa
20563 -rw-r--r-- 1 root root 41490 Oct  2  1993 hrpld.pfa
20568 -rw-r--r-- 1 root root   152 Aug 25  1994 hrplrb.gsf
20569 -rw-r--r-- 1 root root   162 Aug 25  1994 hrplrbo.gsf
20567 -rw-r--r-- 1 root root  9039 Aug 25  1994 hrplr.gsf
20570 -rw-r--r-- 1 root root   157 Aug 25  1994 hrplro.gsf
20572 -rw-r--r-- 1 root root   168 Aug 25  1994 hrplsb.gsf
20573 -rw-r--r-- 1 root root   178 Aug 25  1994 hrplsbo.gsf
20571 -rw-r--r-- 1 root root  6750 Aug 25  1994 hrpls.gsf
20574 -rw-r--r-- 1 root root   173 Aug 25  1994 hrplso.gsf
20576 -rw-r--r-- 1 root root   824 Dec 24  1998 hrpltb.gsf
20577 -rw-r--r-- 1 root root   838 Dec 24  1998 hrpltbi.gsf
20578 -rw-r--r-- 1 root root 59013 Oct  2  1993 hrplti.pfa
20575 -rw-r--r-- 1 root root 60102 Oct  2  1993 hrplt.pfa
20580 -rw-r--r-- 1 root root   826 Dec 24  1998 hrsccb.gsf
20581 -rw-r--r-- 1 root root   831 Dec 24  1998 hrscco.gsf
20579 -rw-r--r-- 1 root root 44900 Oct  2  1993 hrscc.pfa
20583 -rw-r--r-- 1 root root   826 Dec 24  1998 hrscsb.gsf
20584 -rw-r--r-- 1 root root   831 Dec 24  1998 hrscso.gsf
20582 -rw-r--r-- 1 root root 39219 Oct  2  1993 hrscs.pfa
20585 -rw-r--r-- 1 root root 13675 Aug 25  1994 hrsyr.gsf
20587 -rw-r--r-- 1 root root 75363 Oct  3  1991 putbi.pfa
20586 -rw-r--r-- 1 root root 72834 Oct  3  1991 putb.pfa
20589 -rw-r--r-- 1 root root 74892 Oct  3  1991 putri.pfa
20588 -rw-r--r-- 1 root root 72354 Oct  3  1991 putr.pfa
20590 -rw-r--r-- 1 root root 18854 Sep  9  1998 u003043t.afm
20591 -rw-r--r-- 1 root root 68180 Sep  9  1998 u003043t.gsf
20592 -rw-r--r-- 1 root root  2591 Dec 15  1998 u003043t.pfm
20593 -rw-r--r-- 1 root root 18707 Sep  9  1998 u004006t.afm
20594 -rw-r--r-- 1 root root 52007 Sep  9  1998 u004006t.gsf
20595 -rw-r--r-- 1 root root  2561 Dec 15  1998 u004006t.pfm

/usr/share/fonts/default/Type1:
total 4440
19960 drwxr-xr-x 2 root root   4096 Apr 17 09:08 .
19958 drwxr-xr-x 4 root root   4096 Apr 17 09:08 ..
20470 -rw-r--r-- 1 root root  43100 Jan 15  2011 a010013l.afm
20471 -rw-r--r-- 1 root root  63673 Jan 15  2011 a010013l.pfb
20472 -rw-r--r-- 1 root root  43043 Jan 15  2011 a010015l.afm
20473 -rw-r--r-- 1 root root  65403 Jan 15  2011 a010015l.pfb
20474 -rw-r--r-- 1 root root  42984 Jan 15  2011 a010033l.afm
20475 -rw-r--r-- 1 root root  62334 Jan 15  2011 a010033l.pfb
20476 -rw-r--r-- 1 root root  43244 Jan 15  2011 a010035l.afm
20477 -rw-r--r-- 1 root root  68601 Jan 15  2011 a010035l.pfb
20478 -rw-r--r-- 1 root root  42337 Jan 15  2011 b018012l.afm
20479 -rw-r--r-- 1 root root  98981 Jan 15  2011 b018012l.pfb
20480 -rw-r--r-- 1 root root  40814 Jan 15  2011 b018015l.afm
20481 -rw-r--r-- 1 root root  76964 Jan 15  2011 b018015l.pfb
20482 -rw-r--r-- 1 root root  41572 Jan 15  2011 b018032l.afm
20483 -rw-r--r-- 1 root root  86000 Jan 15  2011 b018032l.pfb
20484 -rw-r--r-- 1 root root  40855 Jan 15  2011 b018035l.afm
20485 -rw-r--r-- 1 root root  73392 Jan 15  2011 b018035l.pfb
20486 -rw-r--r-- 1 root root  43304 Jan 15  2011 c059013l.afm
20487 -rw-r--r-- 1 root root 106309 Jan 15  2011 c059013l.pfb
20488 -rw-r--r-- 1 root root  43113 Jan 15  2011 c059016l.afm
20489 -rw-r--r-- 1 root root 107962 Jan 15  2011 c059016l.pfb
20490 -rw-r--r-- 1 root root  43476 Jan 15  2011 c059033l.afm
20491 -rw-r--r-- 1 root root  96124 Jan 15  2011 c059033l.pfb
20492 -rw-r--r-- 1 root root  43322 Jan 15  2011 c059036l.afm
20493 -rw-r--r-- 1 root root  96325 Jan 15  2011 c059036l.pfb
20494 -rw-r--r-- 1 root root   9381 Jan 15  2011 d050000l.afm
20495 -rw-r--r-- 1 root root  45955 Jan 15  2011 d050000l.pfb
20496 -rw-r--r-- 1 root root  31050 Apr 17 09:08 fonts.scale
20497 -rw-r--r-- 1 root root  43198 Jan 15  2011 n019003l.afm
20498 -rw-r--r-- 1 root root  79155 Jan 15  2011 n019003l.pfb
20499 -rw-r--r-- 1 root root  42970 Jan 15  2011 n019004l.afm
20500 -rw-r--r-- 1 root root  70730 Jan 15  2011 n019004l.pfb
20501 -rw-r--r-- 1 root root  43829 Jan 15  2011 n019023l.afm
20502 -rw-r--r-- 1 root root  67864 Jan 15  2011 n019023l.pfb
20503 -rw-r--r-- 1 root root  43535 Jan 15  2011 n019024l.afm
20504 -rw-r--r-- 1 root root  68801 Jan 15  2011 n019024l.pfb
20505 -rw-r--r-- 1 root root  43051 Jan 15  2011 n019043l.afm
20506 -rw-r--r-- 1 root root  71029 Jan 15  2011 n019043l.pfb
20507 -rw-r--r-- 1 root root  42706 Jan 15  2011 n019044l.afm
20508 -rw-r--r-- 1 root root  71638 Jan 15  2011 n019044l.pfb
20509 -rw-r--r-- 1 root root  43292 Jan 15  2011 n019063l.afm
20510 -rw-r--r-- 1 root root  69121 Jan 15  2011 n019063l.pfb
20511 -rw-r--r-- 1 root root  43226 Jan 15  2011 n019064l.afm
20512 -rw-r--r-- 1 root root  74939 Jan 15  2011 n019064l.pfb
20513 -rw-r--r-- 1 root root  43432 Jan 15  2011 n021003l.afm
20514 -rw-r--r-- 1 root root 101374 Jan 15  2011 n021003l.pfb
20515 -rw-r--r-- 1 root root  43360 Jan 15  2011 n021004l.afm
20516 -rw-r--r-- 1 root root 101380 Jan 15  2011 n021004l.pfb
20517 -rw-r--r-- 1 root root  42264 Jan 15  2011 n021023l.afm
20518 -rw-r--r-- 1 root root  91442 Jan 15  2011 n021023l.pfb
20519 -rw-r--r-- 1 root root  42361 Jan 15  2011 n021024l.afm
20520 -rw-r--r-- 1 root root  87491 Jan 15  2011 n021024l.pfb
20521 -rw-r--r-- 1 root root  43561 Jan 15  2011 n022003l.afm
20522 -rw-r--r-- 1 root root  94786 Jan 15  2011 n022003l.pfb
20523 -rw-r--r-- 1 root root  42114 Jan 15  2011 n022004l.afm
20524 -rw-r--r-- 1 root root 101592 Jan 15  2011 n022004l.pfb
20525 -rw-r--r-- 1 root root  42283 Jan 15  2011 n022023l.afm
20526 -rw-r--r-- 1 root root  88671 Jan 15  2011 n022023l.pfb
20527 -rw-r--r-- 1 root root  41456 Jan 15  2011 n022024l.afm
20528 -rw-r--r-- 1 root root  88597 Jan 15  2011 n022024l.pfb
20529 -rw-r--r-- 1 root root  41954 Jan 15  2011 p052003l.afm
20530 -rw-r--r-- 1 root root 109974 Jan 15  2011 p052003l.pfb
20531 -rw-r--r-- 1 root root  41583 Jan 15  2011 p052004l.afm
20532 -rw-r--r-- 1 root root 109157 Jan 15  2011 p052004l.pfb
20533 -rw-r--r-- 1 root root  41795 Jan 15  2011 p052023l.afm
20534 -rw-r--r-- 1 root root 109445 Jan 15  2011 p052023l.pfb
20535 -rw-r--r-- 1 root root  41072 Jan 15  2011 p052024l.afm
20536 -rw-r--r-- 1 root root 114176 Jan 15  2011 p052024l.pfb
20537 -rw-r--r-- 1 root root   9686 Jan 15  2011 s050000l.afm
20538 -rw-r--r-- 1 root root  33709 Jan 15  2011 s050000l.pfb
20539 -rw-r--r-- 1 root root  40416 Jan 15  2011 z003034l.afm
20540 -rw-r--r-- 1 root root  91063 Jan 15  2011 z003034l.pfb

/usr/share/fonts/dejavu:
total 7940
 19959 drwxr-xr-x 2 root root   4096 Apr 17 09:08 .
319742 drwxr-xr-x 4 root root   4096 Apr 17 09:08 ..
 20597 -rw-r--r-- 1 root root 611212 Feb 27  2011 DejaVuSans-BoldOblique.ttf
 20596 -rw-r--r-- 1 root root 672300 Feb 27  2011 DejaVuSans-Bold.ttf
 20602 -rw-r--r-- 1 root root 580168 Feb 27  2011 DejaVuSansCondensed-BoldOblique.ttf
 20601 -rw-r--r-- 1 root root 631992 Feb 27  2011 DejaVuSansCondensed-Bold.ttf
 20603 -rw-r--r-- 1 root root 576004 Feb 27  2011 DejaVuSansCondensed-Oblique.ttf
 20604 -rw-r--r-- 1 root root 643852 Feb 27  2011 DejaVuSansCondensed.ttf
 20598 -rw-r--r-- 1 root root 345208 Feb 27  2011 DejaVuSans-ExtraLight.ttf
 20599 -rw-r--r-- 1 root root 611556 Feb 27  2011 DejaVuSans-Oblique.ttf
 20600 -rw-r--r-- 1 root root 720012 Feb 27  2011 DejaVuSans.ttf
 20606 -rw-r--r-- 1 root root 332036 Feb 27  2011 DejaVuSerif-BoldItalic.ttf
 20605 -rw-r--r-- 1 root root 341072 Feb 27  2011 DejaVuSerif-Bold.ttf
 20610 -rw-r--r-- 1 root root 331128 Feb 27  2011 DejaVuSerifCondensed-BoldItalic.ttf
 20609 -rw-r--r-- 1 root root 316440 Feb 27  2011 DejaVuSerifCondensed-Bold.ttf
 20611 -rw-r--r-- 1 root root 338140 Feb 27  2011 DejaVuSerifCondensed-Italic.ttf
 20612 -rw-r--r-- 1 root root 330012 Feb 27  2011 DejaVuSerifCondensed.ttf
 20607 -rw-r--r-- 1 root root 338776 Feb 27  2011 DejaVuSerif-Italic.ttf
 20608 -rw-r--r-- 1 root root 363200 Feb 27  2011 DejaVuSerif.ttf

@alixaxel
Copy link
Owner

alixaxel commented May 18, 2019

@nickychow

From what I could assess, the new Lambda environment is way more lightweight than the 8.10 counterpart: not only it comes with the outdated libnss dependencies you already noticed, I also wasn't able to locate any Fontconfig configuration file, nor any single font available on the system - grepped for *.ttf, *.otf, ...

So it seems like a proper packaging for Node 10 would be substantially larger:

  • 1786 KiB in needed linked dependencies (uncompressed)
  • 7893 KiB in DejaVu font faces (uncompressed)

Besides that, quite some patching to the environment/files would be required:

  • LD_LIBRARY_PATH for shared objects
  • PATH for local fonts.conf overlay

In light of all of this, I no longer think the advantages of upgrading to Node 10 outweigh the drawbacks.

I'm uploading the necessary shared objects (they should be rather stable/future-proof) in case someone wants to create a Node 10 compatibility layer on top of this, including whatever font faces are appropriate.

@bhasto
Copy link

bhasto commented May 21, 2019

It looks like AWS is going to force the new, lightweight environment for all lambdas pretty soon: https://aws.amazon.com/blogs/compute/upcoming-updates-to-the-aws-lambda-execution-environment/

If I’m not mistaken, this will cause problems similar to the ones mentioned above even on Node 8 lambdas. Has anyone managed to make this work in the new environment?

@seangarner
Copy link

@bhasto pretty sure that the forced update is to 2018.03 (of amazon linux 1), which is an update for sure, but not one that should impact this. That's not to say that there wont be another update later in the year that forces linux 2 on all lambda environments.

@alixaxel
Copy link
Owner

@bhasto I did opt in to the new execution environment on a Node 8 Lambda with Layer arn:aws:lambda:::awslayer:AmazonLinux1803 and things worked normally.

However I do also share the concern about a potential update to Linux 2 on all environments, but if that time comes I'll definitely be creating and maintaining support Layers for it.

@SergeyAvd
Copy link

I have confirmed that the chrome rpm, downloaded from google works on Amazon Linux 2
link

This probably doesn't help, but could someone explain why Chrome works on Amazon Linux 2 and Chromium doesn't?

@alixaxel
Copy link
Owner

@SergeyAvd I don't see why it wouldn't work, as long as (some of) the dependencies here are installed:

- name: Installing Packages
yum:
name:
- "@Development Tools"
- alsa-lib-devel
- atk-devel
- binutils
- bison
- bluez-libs-devel
- brlapi-devel
- bzip2
- bzip2-devel
- cairo-devel
- cmake
- cups-devel
- dbus-devel
- dbus-glib-devel
- expat-devel
- fontconfig-devel
- freetype-devel
- gcc-c++
- git
- glib2-devel
- glibc.i686
- gperf
- gtk3-devel
- htop
- httpd
- java-1.*.0-openjdk-devel
- libatomic
- libcap-devel
- libffi-devel
- libgcc.i686
- libgnome-keyring-devel
- libjpeg-devel
- libstdc++.i686
- libX11-devel
- libxkbcommon-x11-devel
- libXScrnSaver-devel
- libXtst-devel
- mercurial
- mod_ssl
- ncurses-compat-libs
- nspr-devel
- nss-devel
- pam-devel
- pango-devel
- pciutils-devel
- php
- php-cli
- pkgconfig
- pulseaudio-libs-devel
- python
- tar
- zlib-devel
- zlib.i686

@jensbodal
Copy link

@nickychow

From what I could assess, the new Lambda environment is way more lightweight than the 8.10 counterpart: not only it comes with the outdated libnss dependencies you already noticed, I also wasn't able to locate any Fontconfig configuration file, nor any single font available on the system - grepped for *.ttf, *.otf, ...

So it seems like a proper packaging for Node 10 would be substantially larger:

  • 1786 KiB in needed linked dependencies (uncompressed)
  • 7893 KiB in DejaVu font faces (uncompressed)

Besides that, quite some patching to the environment/files would be required:

  • LD_LIBRARY_PATH for shared objects
  • PATH for local fonts.conf overlay

In light of all of this, I no longer think the advantages of upgrading to Node 10 outweigh the drawbacks.

I'm uploading the necessary shared objects (they should be rather stable/future-proof) in case someone wants to create a Node 10 compatibility layer on top of this, including whatever font faces are appropriate.

I'm sure this is already known, but LD_LIBRARY_PATH variable includes /opt/lib in the path for the AL2 execution environment. So for that a layer would just need to be added which includes a lib folder and the necessary shared objects.

As for the font, you can set the FONTCONFIG_PATH to /opt/usr/share/fontconfig (or whatever path) and then include a /usr/share/fontconfig/font.conf file in the layer with the following:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <dir>/opt/usr/share/fonts</dir>
    <dir>/tmp/.fonts</dir>
</fontconfig>

This should restore the previous functionality you have for asynchronously loading fonts into /tmp/.fonts as well as allowing others to create layers which include fonts.

I'm testing out preparing a chrome headless binary for AL2 in a different way than the approach in this repo (using amazonlinux docker image to build shared objects and non-chrome binaries), but came across this same error and resolved it by setting the font config path. Not sure yet if everything else is working but I plan on publishing my repo if it works out.

@jensbodal
Copy link

So I also tried to use the binary bundled with this repo but it doesn't appear to look at the FONTCONFIG_PATH for fonts. Any idea if the path is hardcoded to /etc/fonts or something similar? With both chrome installed via RPM and chromium downloaded from chromium.org I'm able to alleviate the font issue with my method above, but with the decompressed chrome binary that you're building it doesn't change anything.

I'm able to get the latest RPM as well as chromium Linux_x64 working in both AL2 and AL2018 docker containers, but get other errors when I try to do the same in lambda.

@alixaxel
Copy link
Owner

alixaxel commented Jul 14, 2019

@jensbodal This binary needs to be compiled with use_bundled_fontconfig = true:

use_bundled_fontconfig = true

I'm not sure is that skips the FONTCONFIG_PATH lookup or not (and I don't have time to check right now).
I suppose setting PATH=$PATH:$FONTCONFIG_PATH should work, did you try that?

@jensbodal
Copy link

Including FONTCONFIG_PATH in the PATH also has no effect.

It looks like using use_bundled_fontconfig will ignore the system fontconfig entirely. I'm not sure what it's doing instead to look up the location of fonts when they are supposed to be bundled.

# Remove a dependency on a system fontconfig library.
--
  | use_bundled_fontconfig = true

@alixaxel
Copy link
Owner

@jensbodal I think it's looking under $HOME/.fonts.

What I do with the font method, is I set the HOME env to /tmp.

@jensbodal
Copy link

jensbodal commented Jul 14, 2019

Oh wow that was unfortunate, I did everything but forgot to copy my fonts.conf file when building the libs as I described above. I can confirm that my original method does in fact work. Sorry about the noise :|

I have not yet tested in lambda but have it working with the AL2018 docker image.

My /opt directory looks like

opt:
lib  usr

opt/lib:
libX11.so.6  libXau.so.6  libxcb.so.1

opt/usr:
share

opt/usr/share:
fontconfig  fonts

opt/usr/share/fontconfig:
conf.avail  fonts.conf

opt/usr/share/fontconfig/conf.avail:
61-stix.conf

opt/usr/share/fonts:
stix

opt/usr/share/fonts/stix:
STIX-Bold.otf  STIX-BoldItalic.otf  STIX-Italic.otf  STIX-Regular.otf

And before calling my test I run process.env.FONTCONFIG_PATH = '/opt/usr/share/fontconfig';

@alixaxel
Copy link
Owner

@jensbodal Great! Let me know how it goes!

@LiamBateman
Copy link

Is this something we need to worry about since the General Update starts tomorrow (16th)?

https://aws.amazon.com/blogs/compute/upcoming-updates-to-the-aws-lambda-execution-environment/

@SergeyAvd
Copy link

@LiamBateman

I don't think so. The General Update happening on July 16th changes Amazon Linux 2017.09 to Amazon Linux 2018.03. I've tested my use case on 2018.03 and chrome-aws-lambda appears to work. This issue as about Amazon Linux 2. While General Update:

does not apply to the recently announced Node.js v10 runtime which today runs on Amazon Linux 2

@LiamBateman
Copy link

Ah! This makes more sense. Thanks for clarifying.

@devasur
Copy link

devasur commented Oct 21, 2019

I am unable to use the pre-built layer created through make with puppeteer-core directly. Is it possible to do so? Is it necessary to do all the inflate steps packaged in Chromum class before using this layer directly with puppeteer?

@devasur
Copy link

devasur commented Oct 21, 2019

I tried to deconstruct your packaging logic t assemble a path based layer. I am taking this approach rather than using pre-built layer because it helps me in some ways manage development, testing and production environments. Things are working perfectly if I use Chromium.puppeteer.launch(). My target is to directly be able to use puppeteer-core.

====

Chromium.executablePath() , inflates (brotli) and creates

  • /tmp/chromium
  • /tml/aws.tar
  • /tmp/swiftshader.tar
    from binaries packaged in bin/

It returns /tmp/chromium as the executablePath. Which is used in puppeteer-core options to instantiate a headless chromium.

With this understanding I tried to package the layer into a /layer folder.
/layer/chromium
/layer/lib/aws.tar
/layer/lib/swiftshader.tar
my expectation was that the libraries from tar files will get loaded since those are in /opt/lib folder which will be in LD_LIBRARY_PATH

This was a wrong assumption. So I tried to deflate both tar files. into the /layer/lib folder. This gave all packaged *.so files into LD_LIBRARY_PATH , along with inflated chromium as executable.

This approach produced another error.

Error: Failed to launch chrome!
/opt/chromium: /lib64/libnssutil3.so: version `NSSUTIL_3.39' not found (required by /opt/lib/libnss3.so)

I can see that libnss3.so is correctly getting used. However something is not suiting with /lib64/libnssutil3.so

Any ideas?

@alixaxel
Copy link
Owner

alixaxel commented Oct 21, 2019

@devasur What I found out is that the order of the paths in environment variables matters:

if (process.env.AWS_EXECUTION_ENV === 'AWS_Lambda_nodejs10.x') {
  if (process.env.FONTCONFIG_PATH === undefined) {
    process.env.FONTCONFIG_PATH = '/opt/lib';
  }

  if (process.env.LD_LIBRARY_PATH.startsWith('/opt/lib:') !== true) {
    process.env.LD_LIBRARY_PATH = [...new Set(['/opt/lib', ...process.env.LD_LIBRARY_PATH.split(':')])].join(':');
  }
}

Try to look into version 1.20.1 - that's the one that closest mimicks what you're trying to do.

You should also move Chromium (and SwiftShader) into /opt/bin (just cleaner semantics).

PS: Not sure it's clear but you need to inflate and untar all the files.

@ti0ma
Copy link

ti0ma commented Oct 21, 2019

@exentrich It seems that your Lambda is in a hot state, but after a while it resets the custom ENV variables somehow... I looked and couldn't find this behavior documented anywhere unfortunately.

So far I wasn't able to reproduce this behavior either, so I'm a bit blindsided here.

I've published 1.20.3 with a tentative workaround for this - would you mind giving it a try?

I had the same issue when using the module in a layer with Node10.x runtime, but after I updated the layer to 1.20.3, the issue has gone and now everything is working fine!

Thank you!

@devasur
Copy link

devasur commented Oct 21, 2019

image

I see. I changed the order. Don't know whether changing it post instantiation has any impact on an executing lambda.

I am getting a socket hangup error now with rejigged layer.

    // browser = await chromium.puppeteer.launch({
    //   args: chromium.args,
    //   defaultViewport: chromium.defaultViewport,
    //   executablePath: await chromium.executablePath,
    //   headless: chromium.headless,
    // });
    browser = await puppeteer.launch({
      args: ['--no-sandbox', '--disable-gpu', '--single-process'],
      headless:true,
      executablePath:executablePath
    })

2019-10-21T09:39:15.294Z 52c9f3fc-b4f8-4064-822c-3c71ecf64940 INFO LD_LIBRARY_PATH /opt/lib:/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib
2019-10-21T09:39:16.281Z 52c9f3fc-b4f8-4064-822c-3c71ecf64940 ERROR ErrorEvent {
target:
WebSocket {
_events:
[Object: null prototype] { open: [Function], error: [Function] },
_eventsCount: 2,
_maxListeners: undefined,
readyState: 3,
protocol: '',
_binaryType: 'nodebuffer',
_closeFrameReceived: false,
_closeFrameSent: false,
_closeMessage: '',
_closeTimer: null,
_closeCode: 1006,
_extensions: {},
_receiver: null,
_sender: null,
_socket: null,
_isServer: false,
_redirects: 0,
url:
'ws://127.0.0.1:37633/devtools/browser/b00164bd-cfa9-4d2f-9dce-bf1965b29fcd',
_req: null },
type: 'error',
message: 'socket hang up',
error:
{ Error: socket hang up
at createHangUpError (_http_client.js:323:15)
at Socket.socketOnEnd (_http_client.js:426:23)
at Socket.emit (events.js:203:15)
at endReadableNT (_stream_readable.js:1145:12)
at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' } }
2019-10-21T09:39:16.290Z 52c9f3fc-b4f8-4064-822c-3c71ecf64940 ERROR Invoke Error {"errorType":"Error","errorMessage":"[object Object]","stack":["Error: [object Object]"," at _homogeneousError (/var/runtime/CallbackContext.js:13:12)"," at postError (/var/runtime/CallbackContext.js:30:51)"," at done (/var/runtime/CallbackContext.js:57:7)"," at fail (/var/runtime/CallbackContext.js:69:7)"," at Object.fail (/var/runtime/CallbackContext.js:105:16)"," at Runtime.exports.handler (/var/task/tests/testchromium.js:37:20)"," at process._tickCallback (internal/process/next_tick.js:68:7)"]}

@alixaxel
Copy link
Owner

@ti0ma Awesome, great to know - thanks! 👍

@devasur What you're trying to accomplish is unrelated to this specific issue, would you mind opening a new issue with your specific problem and adding the layer + accompanying code so I can help you?

@exentrich
Copy link

@alixaxel it's weird but I found solution for problem.
I changed this part:

finally {
        if (browser !== null)
            await browser.close()
}

to:

finally {
        try{await browser.close()}catch(e){}
}

@alixaxel
Copy link
Owner

@exentrich Are you sure? 🤔 It doesn't make much sense...

@devasur
Copy link

devasur commented Oct 22, 2019

@alixaxel : You are right. I realized I was just making my life miserable by trying to use puppeteer directly on AWS/Node10. Clearly you have done everything that was required to achieve everything I was trying to achieve :) - light packaging, layer usage etc. I have put together a small example of using your layer in a lambda here.

https://github.com/devasur/chrome-aws-lambda-layer

@Hassancxpm
Copy link

I have the same issue as the OP, and the 1.20.3 version saved me!

Thanks to the author for his great work!

@geoseong
Copy link

I got same error attaching this Lambda Layer arn:aws:lambda:ap-northeast-2:764866452798:layer:chrome-aws-lambda:5 in ap-northeast-2 region.

I just followed how to create Lambda Layer manually
and I copied nodejs/node_modules directory to my custom Lambda Layer's directory,
and deployed Lambda Layer to my account via serverless framework.

and attached this Lambda Layer to my lambda function, it works well...

my Folder Structure looks like...

── /chromium/            
  ├── /node_modules
  └── /serverless.yml

my serverless.yml looks like below

service: chromium-layer # NOTE: update this with your service name

provider:
  name: aws
  runtime: nodejs10.x
  region: ap-northeast-2
  stage: ${opt:stage, 'dev'}
  profile: !$!@!@#!@
  environment:
    NODE_PATH: "/opt/node_modules:/opt:/"

custom:
  serverless-offline:
    port: 6000

# on AWS environment: cd /opt && npm ls -> npm ERR! missing: ms@2.1.1, required by layer_packages@1.0.0
# https://github.com/serverless/serverless/issues/3915
package:
  excludeDevDependencies: false

layers:
  ChromiumPackage:
    path: ./ # required, path to layer contents on disk
    name: Layer-${self:provider.stage}-ChromiumPackage # optional, Deployed Lambda layer name
    description: #$!@!@#!@#
    compatibleRuntimes:
      - nodejs10.x
    retain: true

@devasur
Copy link

devasur commented Oct 23, 2019

What worked for me was to create layer using the artifact method. Path method did not work correctly for the pre-built zip created by make. You may check this example for a working project that uses this layer.

https://github.com/devasur/chrome-aws-lambda-layer

@hossfard
Copy link

hossfard commented Nov 10, 2019

I'm experiencing similar issue on AWS lambda with chrome-aws-lambda version 2.0.0 using Node 8.10/10.x envs, with the exception that the error I get is just Failed to launch chrome!\n\n\nTROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md\n.

What's preferred: open a new bug report or post details here?

Update:

It turns out that the issue above was with the first invocation of the Lambda timing out. Looking at the code, I believe what was happening was that the binary inflation would be left incomplete after the first time the Lambda was invoked if it timed out. Subsequent calls would not try to inflate it again. Just by making sure that the first invocation does not timeout, it seems to have fixed the issue. For reference, I am using Node 10.x runtime environment.

@giladno
Copy link

giladno commented Dec 16, 2019

This is what I'm getting with latest version:

AWS_EXECUTION_ENV: 'AWS_Lambda_nodejs12.x',
  FONTCONFIG_PATH: undefined,
  LD_LIBRARY_PATH: '/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib',
  '/tmp/aws/lib': false

UPDATE: it does work when I'm trying to use node10.x, but can't make it work with node12.x

@hasansaghir
Copy link

This is what I'm getting with latest version:

AWS_EXECUTION_ENV: 'AWS_Lambda_nodejs12.x',
  FONTCONFIG_PATH: undefined,
  LD_LIBRARY_PATH: '/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib',
  '/tmp/aws/lib': false

UPDATE: it does work when I'm trying to use node10.x, but can't make it work with node12.x

I had the same issue using Lambda with Nodejs12.x and chrome-aws-lambda version 2.0.0. I got it fixed by bumping up the version for chrome-aws-lambda to 2.0.2.

@alixaxel
Copy link
Owner

alixaxel commented Jan 8, 2020

@hasansaghir Node 12.x support is only implemented in version 2.0.1 onwards.

@pencilcheck
Copy link

version 6.0.0 supports Nodejs 14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests