Тайм-аут при развертывании Sails.js приложение для Google App Engine

#node.js #google-app-engine #sails.js

#node.js #google-app-engine #sails.js

Вопрос:

У меня есть новый Sails.js приложение, которое я пытаюсь развернуть в Google App Engine. Когда я просто развернул фреймворк (ванильный Sails.js приложение, созданное с помощью CLI sails new web-service ), оно работает просто отлично. Развертывание произошло быстро, и я могу получить доступ к приложению, посетив URL-адрес.

Я настроил ORM at /config/connections.js для подключения к базе данных mLab MongoDB. После этого изменения приложение отлично работает на моем локальном компьютере, но когда я развертываю его в Google App Engine с помощью терминала, я получаю следующую ошибку консоли:

 Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] Timed out when starting VMs.  (1/2 ready, 1 still deploying).

npm ERR! Darwin 15.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deploy"
npm ERR! node v5.11.0
npm ERR! npm  v2.14.5
npm ERR! code ELIFECYCLE
npm ERR! web-service@0.0.0 deploy: `gcloud app deploy --project web-service-staging`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the web-service@0.0.0 deploy script 'gcloud app deploy --project web-service-staging'.
npm ERR! This is most likely a problem with the web-service package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gcloud app deploy --project web-service-staging
npm ERR! You can get their info via:
npm ERR!     npm owner ls web-service
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/Nag/Code/web-service/npm-debug.log
  

Вот результат npm-debug.log :

 0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'deploy' ]
2 info using npm@2.14.5
3 info using node@v5.11.0
4 verbose run-script [ 'predeploy', 'deploy', 'postdeploy' ]
5 info predeploy web-service@0.0.0
6 info deploy web-service@0.0.0
7 verbose unsafe-perm in lifecycle true
8 info web-service@0.0.0 Failed to exec deploy script
9 verbose stack Error: web-service@0.0.0 deploy: `gcloud app deploy --project web-service-staging`
9 verbose stack Exit status 1
9 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:214:16)
9 verbose stack     at emitTwo (events.js:100:13)
9 verbose stack     at EventEmitter.emit (events.js:185:7)
9 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:100:13)
9 verbose stack     at ChildProcess.emit (events.js:185:7)
9 verbose stack     at maybeClose (internal/child_process.js:850:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
10 verbose pkgid web-service@0.0.0
11 verbose cwd /Users/Nag/Code/web-service
12 error Darwin 15.5.0
13 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "deploy"
14 error node v5.11.0
15 error npm  v2.14.5
16 error code ELIFECYCLE
17 error web-service@0.0.0 deploy: `gcloud app deploy --project web-service-staging`
17 error Exit status 1
18 error Failed at the web-service@0.0.0 deploy script 'gcloud app deploy --project web-service-staging'.
18 error This is most likely a problem with the web-service package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     gcloud app deploy --project web-service-staging
18 error You can get their info via:
18 error     npm owner ls web-service
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]
  

У него проблемы с запуском, потому что он не может подключиться к базе данных mLab? Если да, то почему это так? Отлично работает на моем локальном компьютере. Поможет ли увеличение времени ожидания? Если да, то как мне это сделать?

Ответ №1:

Хорошо, мне удалось решить эту проблему, изменив ORM hookTimeout .

В /config/env/development.js и /config/env/production.js я добавил следующее:

 module.exports = {

    // Extends the ORM timeout to connect to the database
    hookTimeout: 240000
};