У меня есть функция облачного кода, которая работала несколько недель, а вчера начала давать сбой. Это приводит к выключению всего сервера синтаксического анализа и не ведет журналов, что очень затрудняет отладку. Я попытался вызвать Stripe API напрямую с помощью node и моей строки идентификатора клиента, жестко закодированной, и он работал нормально. Есть идеи, почему это случайно перестает работать в Parse?
Вот моя облачная функция, все, что она делает, это получает идентификатор полосы активных пользователей и извлекает их объект клиента (идентификатор клиента извлекается и успешно регистрируется):
var stripe = require('stripe')(STRIPE_KEY);
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'logs/parsecloud.log',
handleExceptions: true,
humanReadableUnhandledException: true
})
]
});
Parse.Cloud.define('customer', function(req, res) {
if (!req.user) {
logger.error('/customer no user session');
res.error("No user session");
return;
}
var stripeId = req.user.get('stripeId');
logger.info('getting stripe customer for', stripeId);
stripe.customers.retrieve(stripeId).then(
function(customer) {
logger.info('got customer for ', stripeId);
res.success(customer);
},
function(err) {
logger.error('customer error', stripeId, err);
res.error(err);
}
);
});
Я исправил это, переустановив сервер синтаксического анализа с помощью npm. Я использовал старую версию сервера синтаксического анализа, и каждые несколько месяцев он просто случайно переставал работать, и единственный способ исправить это - удалить и переустановить. Возможно, там был какой-то кеш или что-то, что со временем стало слишком большим и в конечном итоге вызвало эту проблему.