Как запустить ghost на Google App Engine - PullRequest
0 голосов
/ 02 июля 2018

Я хочу запустить ghost в стандартной среде GAE. Но я не могу этого. Что происходит?

server.js

const ghost = require('ghost');
const port = process.env.PORT || 8080;

ghost().then(function (ghostServer) {
    ghostServer.rootApp.listen(port);
});

Сообщения об ошибках

INFO This request caused a new process to be started for your application and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.

ERROR A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

«Ошибка 204» в настоящее время не упоминается в общедоступной документации Google, поэтому я рекомендую вам обратиться непосредственно в службу технической поддержки по этой проблеме. Перейдите по этой ссылке и укажите свой номер проекта.

Примечание: Номер проекта и идентификатор проекта не совпадают, последний считается PII и не должен передаваться публично.

0 голосов
/ 02 июля 2018

Я однажды получил код ошибки 204. Это было, когда я обнаружил утечку памяти в версии ssl-библиотеки python, которая приводила к падению моих экземпляров каждые несколько минут. Мне пришлось работать с Google Cloud Support, чтобы понять это.

У меня возникла другая проблема, когда мне пришлось изменить исходный код библиотеки Python, потому что он пытался привязаться к порту и завершился ошибкой. Это было на самом деле хорошо, потому что оно изящно провалилось, проблема, которую я пытался решить, это то, что он иногда зависал на 10 минут.

Согласно это , NodeJS на GAE Standard находится в бета-версии:

Это бета-версия Node.js в стандартной среде Google App Engine. Эта функция может быть изменена несовместимыми способами и на нее не распространяются никакие соглашения об уровне обслуживания или политики устаревания.

Так что я бы не стал уходить слишком далеко от примера приложения, которое они предоставили:

https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/appengine/hello-world/standard

Опции

  1. Если возможно, просто придерживайтесь Express по стандарту GAE
  2. Если вам нужно использовать Ghost, рассмотрите возможность перехода на GAE Flex
  3. Если вы не можете использовать Ghost в GAE Standard, используйте Express, как они это делали в примере, но настройте его как адаптер для ghost. Иметь один обработчик экспресс-запросов, который направляет запросы в Ghost и передает ответы от Ghost (на самом деле эта функция запрашивает то, что я пытаюсь описать https://github.com/TryGhost/Ghost/issues/827)
...