无法使用“winston”和“s3-streamlogger”在 aws S3 存储桶中创建日志

viv*_*m91 6 windows amazon-web-services node.js

const winston = require('winston');
var S3StreamLogger = require('s3-streamlogger').S3StreamLogger;

var s3_stream = new S3StreamLogger({
    bucket: "bucket_name",
    access_key_id: "access_key_id",
    secret_access_key: "secret_access_key"
});

var logger = new (winston.Logger)({
    transports: [
        new (winston.transports.File)({
            stream: s3_stream
        })
    ]
});

exports.handler = function (event, context) {
    winston.info('Hello Winston!');
    console.log("This is logging demo");
    logger.info('Logging is in progress');
    console.log("Consol Starting Lambda function");

    var responseCode = 200;  
    var responseBody = {
        message: "Hello !",
        input: event
    };
    var response = {
        statusCode: responseCode,
        headers: {
            "x-custom-header": "my custom header value"
        },
        body: JSON.stringify(responseBody)
    };
    console.log("response: " + JSON.stringify(response));
    context.succeed(response);
};  
Run Code Online (Sandbox Code Playgroud)

在 aws lambda 上(成功)执行上述代码。我收到了 cloudwatch 日志,但我的 S3 存储桶内没有生成任何内容。
我希望在那里创建一个日志文件,但什么也没创建。
我的代码中缺少什么吗?
我的目标是在亚马逊 S3 存储桶中生成日志文件,以便我可以下载该文件进行分析。

Jam*_*mes 4

s3-streamlogger 在将内容上传到 s3 之前对其进行缓冲。默认情况下,它将缓冲 20 秒,或 10kB 内容(以较小者为准)\xe2\x80\x93\xc2\xa0so,如果您的 lambda 函数没有执行至少 20 秒,或者写入 10KB 日志,则什么都不会在您的函数暂停之前编写。

\n\n

upload_every您可以通过和选项指定较小的缓冲阈值buffer_size(请参阅https://github.com/coggle/s3-streamlogger#upload_everyflushFile ),或者在每个请求后通过调用流来手动刷新文件。

\n