2017-11-25 247 views
1

我試圖將一個Node.js應用程序部署到Elastic Beanstalk。該應用在本地正常工作。然而,當我嘗試部署,我得到的錯誤:AWS EB部署問題

Failed to run npm install. Snapshot logs for more details. 

這裏是EB日誌更詳細的截圖: enter image description here

錯誤日誌(我覺得它很有趣,我得到許可被拒絕 - 那會是什麼意思):

/var/log/eb-activity.log 
------------------------------------- 
    npm ERR! path /tmp/.npm/node-linux-x64 
    npm ERR! code EACCES 
    npm ERR! errno -13 
    npm ERR! syscall mkdir 

    npm ERR! Error: EACCES: permission denied, mkdir '/tmp/.npm/node-linux-x64' 
    npm ERR!  at Error (native) 
    npm ERR! { Error: EACCES: permission denied, mkdir '/tmp/.npm/node-linux-x64' 
    npm ERR!  at Error (native) 
    npm ERR! errno: -13, 
    npm ERR! code: 'EACCES', 
    npm ERR! syscall: 'mkdir', 
    npm ERR! path: '/tmp/.npm/node-linux-x64', 
    npm ERR! parent: 'node' } 
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator. 
    npm ERR! Linux 4.9.58-18.55.amzn1.x86_64 
    npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/npm" "install" "--no-save" "[email protected]" 
    npm ERR! node v6.11.5 
    npm ERR! npm v3.10.10 
    npm ERR! path npm-debug.log.487421323 
    npm ERR! code EACCES 
    npm ERR! errno -13 
    npm ERR! syscall open 

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.487421323' 
    npm ERR!  at Error (native) 
    npm ERR! { Error: EACCES: permission denied, open 'npm-debug.log.487421323' 
    npm ERR!  at Error (native) 
    npm ERR! errno: -13, 
    npm ERR! code: 'EACCES', 
    npm ERR! syscall: 'open', 
    npm ERR! path: 'npm-debug.log.487421323' } 
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator. 

    npm ERR! Please include the following file with any support request: 
    npm ERR!  /tmp/deployment/application/node_modules/node/npm-debug.log 
    module.js:471 
     throw err; 
    ^

    Error: Cannot find module 'node-linux-x64/package.json' 
     at Function.Module._resolveFilename (module.js:469:15) 
     at Function.resolve (internal/module.js:27:19) 
     at ChildProcess.<anonymous> (/tmp/deployment/application/node_modules/node-bin-setup/index.js:18:27) 
     at emitTwo (events.js:106:13) 
     at ChildProcess.emit (events.js:191:7) 
     at maybeClose (internal/child_process.js:920:16) 
     at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5) 

    npm ERR! Linux 4.9.58-18.55.amzn1.x86_64 
    npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/npm" "--production" "rebuild" 
    npm ERR! node v6.11.5 
    npm ERR! npm v3.10.10 
    npm ERR! code ELIFECYCLE 
    npm ERR! [email protected] preinstall: `node installArchSpecificPackage` 
    npm ERR! Exit status 1 
    npm ERR! 
    npm ERR! Failed at the [email protected] preinstall script 'node installArchSpecificPackage'. 
    npm ERR! Make sure you have the latest version of node.js and npm installed. 
    npm ERR! If you do, this is most likely a problem with the node package, 
    npm ERR! not with npm itself. 
    npm ERR! Tell the author that this fails on your system: 
    npm ERR!  node installArchSpecificPackage 
    npm ERR! You can get information on how to open an issue for this project with: 
    npm ERR!  npm bugs node 
    npm ERR! Or if that isn't available, you can get their info via: 
    npm ERR!  npm owner ls node 
    npm ERR! There is likely additional logging output above. 

的package.json:

{ 
    "name": "MyProject", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "body-parser": "latest", 
    "express": "latest", 
    "node": "latest", 
    "nodemailer": "latest" 
    }, 
    "scripts": { 
    "start": "node app.js" 
    } 
} 

這是爲什麼發生?

編輯:添加package.json和錯誤日誌按要求。

+2

那麼日誌文件是怎麼說的? – stdunbar

+0

請發佈您的'package.json',至少腳本部分 –

+1

用log和package.json編輯我的帖子 –

回答

0

在沒有信息去了,這裏有一些猜測:

  • 要手動壓縮和上傳您的應用程序。 Use the CLI tools,出於某種原因eb deploy總是去平滑
  • 你是在一個非常小的情況下,你需要升級到一個有足夠的內存來處理你的依賴

如果這些不幫助,請發表您的package.json 。或者,只需使用Up,它比Beanstalk容易得多。

+0

你在說什麼這些CLI工具?我只看到了在EB部署過程中手動上傳應用程序的選項。 –

+0

這裏是一個使用EB CLI和Node的教程https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html –

+0

我嘗試使用CLI,但它仍然不起作用。我認爲這個問題主要是在EACCS權限的拒絕。 –