Я добавил лямбда-функцию в мой API-шлюз. Это запрос get, который возвращает массив данных. Я использую mongodb для своей базы данных
Домен: domain.com/api/list/
Иногда, когда я запрашиваю домен без sla sh, он работает нормально иногда это не работает и возвращает 502. Если я запрашиваю его в обычном браузере, он возвращает 502, но если я запрашиваю тот же URL-адрес в браузере tor, он всегда работает нормально.
Я подозреваю, что это может быть что-то связанные с кэшированием, но почему кэширование приводит к 502?
module.exports.getAll = async (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
await database.connect();
const x = await model.find({});
callback(null, {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(x)
})
};
Я установил кэширование для этого шлюза API в 0 на облачном фронте. Я увеличил время ожидания до 10 секунд, но CloudWatch сообщает, что задание истекло через 6,01 секунды. 9798-4949-813 c -52259d57375b
x-cache: ошибка из облачного фронта
Я также создал пакет npm, который содержит мои схемы mongodb и создает соединение с mongoclient , Из наблюдений в облачном хранилище я понял, что иногда я получаю сообщения об ошибках при использовании «использования существующего подключения к базе данных».
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const url = ``
let isConnected;
module.exports = connectToDatabase = () => {
if (isConnected) {
console.log('=> using existing database connection');
return Promise.resolve();
}
console.log('=> using new database connection');
return mongoose.connect(url).then(db => {
isConnected = db.connections[0].readyState;
});
};
Я получил код connectToDatabase здесь