Serverless-chrome: Can not install on AWS Cloud9 / EC2

Created on 31 Jul 2018  路  15Comments  路  Source: adieuadieu/serverless-chrome

1) Create new EC2 t2.micro
2) Update nvm and npm, as suggested here https://forum.serverless.com/t/array-buffer-allocation-failed/3583
3) npm install -g serverless (without errors)
4) serverless create -u https://github.com/adieuadieu/serverless-chrome/tree/master/examples/serverless-framework/aws

and here it stops. The log is

Serverless Error ---------------------------------------

RangeError: Array buffer allocation failed

Stack Trace --------------------------------------------

ServerlessError: RangeError: Array buffer allocation failed
at download.downloadTemplateFromRepo.then.catch.err (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/plugins/create/create.js:125:17)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
From previous event:
at Object.create:create [as hook] (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/plugins/create/create.js:96:10)
at BbPromise.reduce (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/classes/PluginManager.js:390:55)
From previous event:
at PluginManager.invoke (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/classes/PluginManager.js:390:22)
at PluginManager.run (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/classes/PluginManager.js:421:17)
at variables.populateService.then.then (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/Serverless.js:157:33)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
at Serverless.run (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/lib/Serverless.js:144:8)
at serverless.init.then (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/bin/serverless:43:50)
at /home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:99:16
at /home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/node_modules/graceful-fs/graceful-fs.js:43:10
at FSReqWrap.oncomplete (fs.js:123:15)
From previous event:
at initializeErrorReporter.then (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/bin/serverless:43:28)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
at __dirname (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/bin/serverless:29:46)
at Object. (/home/ec2-user/.nvm/versions/node/v6.14.3/lib/node_modules/serverless/bin/serverless:63:4)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:160:9)
at bootstrap_node.js:507:3

Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com

Your Environment Information -----------------------------
OS: linux
Node Version: 6.14.3
Serverless Version: 1.29.2

All 15 comments

nvm and npm updates were made because of initial search in serverless repository. The problem here was in size limitation, but it seems I have around 400 Mbytes free.

Have you tried upgrading your version of nodejs to v8.10+ ?

First try - it freezes, I will try again tomorrow.

Second try

ec2-user:/environment/.c9 $ node --version
v8.11.3
ec2-user:/environment/.c9 $ serverless create -u https://github.com/adieuadieu/serverless-chrome/tree/master/examples/serverless-framework/aws
Serverless: Generating boilerplate...
Serverless: Downloading and installing "aws"...

and nothing

@uzhas-sovka Instead of using serverless create -u, try cloning this repository instead and navigating into the examples/serverless-framework/aws directory in your cloned repo and continuing from there.

I cloned repo, navigated to /aws and updated node.

Now using node v8.11.3 (npm v5.6.0)
ec2-user:~/environment/serverless-chrome/aws (master) $ npm run deploy
npm ERR! missing script: deploy

It seems I have missed one step between cloning and deployment.

Hi @uzhas-sovka, make sure to navigate to the ~/environment/serverless-chrome/examples/serverless-framework/aws folder. In your console output it looks like you've gone into the ~/environment/serverless-chrome/aws folder, which is not the correct folder for the example.

Once in the example folder, make sure to run npm install first before npm run deploy. Also, before trying to deploy, make sure that you've configured your AWS credentials if necessary.

Yes, the path was wrong.
New error - serverless-plugin-chrome is missing, so I ran

npm install --save-dev serverless-plugin-chrome
and it's OK.

npm install gives error
npm ERR! enoent ENOENT: no such file or directory, open '/home/ec2-user/environment/package.json'

Ran npm init, the problem gone.

serverless-webpack has to be added, then npm install

For now, the shortest sequence is:

1) Create new Cloud9 IDE
2) nvm install 8.11.3
3) clone repo
4) npm install
5) Set credentials
6) npm run deploy

WARNING in ./node_modules/ws/lib/BufferUtil.js
Module not found: Error: Can't resolve 'bufferutil' in '/home/ec2-user/environment/serverless-chrome/examples/serverless-framework/aws/node_modules/ws/lib'
@ ./node_modules/ws/lib/BufferUtil.js 35:21-42
@ ./node_modules/ws/lib/Sender.js
@ ./node_modules/ws/index.js
@ ./node_modules/chrome-remote-interface/lib/chrome.js
@ ./node_modules/chrome-remote-interface/index.js
@ ./.build/src/handlers/bq7iy3xjsmwjcibuuxjvpldi___requestLogger.js
@ ./.build/src/handlers/requestLogger.js

WARNING in ./node_modules/@serverless-chrome/lambda/dist/bundle.es.js
Module not found: Error: Can't resolve 'chrome-launcher' in '/home/ec2-user/environment/serverless-chrome/examples/serverless-framework/aws/node_modules/@serverless-chrome/lambda/dist'
@ ./node_modules/@serverless-chrome/lambda/dist/bundle.es.js 331:52-78
@ ./.build/src/handlers/version.js

WARNING in ./node_modules/ws/lib/Validation.js
Module not found: Error: Can't resolve 'utf-8-validate' in '/home/ec2-user/environment/serverless-chrome/examples/serverless-framework/aws/node_modules/ws/lib'
@ ./node_modules/ws/lib/Validation.js 10:22-47
@ ./node_modules/ws/lib/Receiver.js
@ ./node_modules/ws/index.js
@ ./node_modules/chrome-remote-interface/lib/chrome.js
@ ./node_modules/chrome-remote-interface/index.js
@ ./.build/src/handlers/bq7iy3xjsmwjcibuuxjvpldi___requestLogger.js
@ ./.build/src/handlers/requestLogger.js

Error --------------------------------------------------

ENOENT: no such file or directory, lstat '/home/ec2-user/environment/serverless-chrome/examples/serverless-framework/aws/.build/node_modules/@serverless-chrome/lambda/dist/headless-chromium'

headless-chromium is in fact absent

It's strange: npm install does not install chrome binary into ec2-user:~/environment/serverless-chrome/examples/serverless-framework/aws/node_modules/@serverless-chrome/lambda/dist,
when running in AWS, but installs it when running locally.

I added hardware switches to my Linux and Windows drives, so there is no need to use Cloud9 any longer. While this is obviously not the solution to problem itself, I think the issue may be closed.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

t-io picture t-io  路  8Comments

mooyoul picture mooyoul  路  4Comments

anzebra picture anzebra  路  5Comments

arnm picture arnm  路  5Comments

davewingate picture davewingate  路  10Comments