Я развернул приложение в службе 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.