Я использую Azure Functions с Node.Js.Azure Функции - общие объекты между различными вызовами
Я создал пользовательский модуль журнала Node.js, который использует объект контекста azure и записывает в журнал функции, который отображается в интерфейсе портала Azure. Поскольку мы используем его в нескольких местах, мы определили его как одноэлементный объект, и мы применили к нему объект контекста функции.
Затем мы выяснили, что все остальные функции выполнялись с использованием одного и того же объекта журнала ... и не регистрировали данные в своем собственном журнале контекста. Это очень странно для нас, так как мы ожидали, что каждый вызов функции изолирован, и между разными вызовами нет разделяемых модулей.
Это лазурное код функции:
var Logger = require('../custom_modules/logger/customLogger.js');
module.exports = function (azureContext) {
function infoFn(msg){
azureContext ? azureContext.log(msg) : console.log(msg);
}
function errorFn(msg){
azureContext ? azureContext.log(msg) : console.error(msg);
}
var logger = Logger(infoFn, errorFn);
logger.info('function was triggered');
azureContext.done();
}
И это регистратор код модуля:
var _customLogger;
var CustomLogger = function (info, error) {
this.error = error;
this.info = info;
};
function logger(info, error) {
if (!_customLogger) {
_customLogger = new CustomLogger(info, error);
} else {
if(info){
_customLogger.info = info;
}
if(error){
_customLogger.error = error;
}
}
return _customLogger;
}
module.exports = logger;
ли это предположить, чтобы быть, как это? Мы ожидали, что каждый вызов функции будет изолирован.
Спасибо за ваш ответ. Я думал, что изоляция процесса по умолчанию используется, когда я использую функции Azure (это идея архитектуры серверной архитектуры, насколько я ее понимаю). Из того, что вы написали, я понимаю, что я не могу использовать регистратор как одноэлементный объект, и я его изменю. Благодарю. –
Да, это действительно отстой. Еще одна причина, по которой они должны просто поддерживать console.log вместо того, чтобы заставлять нас проходить контекст. –