Я пытаюсь реализовать регистратор Winston (версия 3.2.1) внутри AWS Lambda. После этого комментария У меня есть этот код:
const winston = require('winston');
const waitForLogger = async (logger) => {
const loggerDone = new Promise((resolve) => logger.on('finish', resolve));
logger.end();
return loggerDone;
};
exports.handler = async (event) => {
const logger = winston.createLogger({
transports: [
new winston.transports.Console(),
],
});
logger.log('info', 'some message');
await waitForLogger(logger);
return {
statusCode: 200,
body: 'test passed',
};
};
Но после генерации сборки с использованием Rollup и развертывания функции с помощью Terraform и тестирования ее на консоли AWS я получаю эту ошибку:
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module './has-flag.js'",
"trace": [
"Runtime.ImportModuleError: Error: Cannot find module './has-flag.js'",
" at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
" at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
" at Object.<anonymous> (/var/runtime/index.js:45:30)",
" at Module._compile (internal/modules/cjs/loader.js:778:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)",
" at Module.load (internal/modules/cjs/loader.js:653:32)",
" at tryModuleLoad (internal/modules/cjs/loader.js:593:12)",
" at Function.Module._load (internal/modules/cjs/loader.js:585:3)",
" at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)",
" at startup (internal/bootstrap/node.js:283:19)"
]
}
Глядя на различные модули, я обнаружил, что модуль hass требует 'has-flag', который фактически является зависимостью от 'winston'.