Ошибка Google App Engine 502: ошибка сервера Node.js - PullRequest
0 голосов
/ 26 мая 2018

Я развернул приложение в службе Google App Engine - простом сервере Express.js, который обслуживал динамические страницы, отображаемые с помощью Handlebars.js.Все было хорошо в течение нескольких часов (он обслуживал страницы), и внезапно он начал отвечать этим сообщением:

502 Ошибка: ошибка сервера Сервер обнаружил временную ошибку и не смог выполнить ваш запрос.Пожалуйста, повторите попытку через 30 секунд.

Я попытался все это исправить:

  • Останов / перезапуск службы (с консоли)
  • Повторное развертывание (из cmd с помощью команды: "gcloud app deploy" )
  • Чтение журналов (из cmd с: "чтение журналов приложений gcloud )
    • Примечание. Это показывает, что сервер в настоящее время прослушивает порт 8080
  • Отключение / включение API App Engine (из консоли)
  • Re-Структурируйте код в виде простого ответа «Hello world» и выполните повторное развертывание
  • Полное удаление проекта и повторное развертывание в новом проекте

Даже новый проект отвечает 502.

Моя мысль: я думаю, что прокси-сервер Google не отправляет запрос приложению, поскольку он действительно прослушивает, но не регистрирует запросы.

Вот код:

App.js:

    'use strict';

const express = require('express');
const hbs = require('hbs');
const axios = require('axios');
const XLSX = require('xlsx');
const http = require('http');



const port = process.env.PORT || 8080;
const env = process.env.NODE_ENV || 'development';


let app = express();

let urls = {
  url1: **Some url**,
  url2: '**Some url2**'
};


app.set('view engine', 'hbs');

app.use(express.static('public'));    


app.get('/page1', async (req, res)=>{
  console.log('Page 1');
  try{
    let products = await getExcel(urls.url1);
    res.render('page1.hbs', {
      products: products,
    });
  }catch(err){
    console.log(err);
    res.status(500).send('Oops! found an Error.')
  }
});

app.get('/page2', async (req, res)=>{
    console.log('Page 2');
    try{
      let products = await getExcel(urls.url2);
      res.render('page2.hbs', {
        products: products,
      });
    }catch(err){
      console.log(err);
      res.status(500).send('Oops! found an Error.')
    }
 });

app.get('/', (req,res)=>{
  console.log('Home');
  res.render('smx-home.hbs',{});
});


const getExcel = async (url) =>{
**DO SOME STUFF HERE THAT RETURNS AN OBJECT OR AN ERROR** 
}    


app.listen(port, ()=>{
  console.log(`${env} Server listening on port ${port}`);
});

package.json:

{
  "name": "suplementos",
  "version": "1.0.0",
  "description": "Suplementos Cajeme y SuplementosMX",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
  },
  "author": "Wake",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.18.0",
    "express": "^4.16.3",
    "hbs": "^4.0.1",
    "xlsx": "^0.12.13"
  }
}

app.yaml

runtime: nodejs
env: flex

automatic_scaling:
  min_num_instances: 1

resources:
  cpu: 1
  memory_gb: 1
  disk_size_gb: 10

У меня нет выбора...Есть какие-нибудь мысли о том, в чем может быть проблема?

Странно то, что он работал без сбоев в течение нескольких часов, прежде чем это началось, теперь он отвечает только с 502.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...