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 存储桶中生成日志文件,以便我可以下载该文件进行分析。
s3-streamlogger 在将内容上传到 s3 之前对其进行缓冲。默认情况下,它将缓冲 20 秒,或 10kB 内容(以较小者为准)\xe2\x80\x93\xc2\xa0so,如果您的 lambda 函数没有执行至少 20 秒,或者写入 10KB 日志,则什么都不会在您的函数暂停之前编写。
\n\nupload_every您可以通过和选项指定较小的缓冲阈值buffer_size(请参阅https://github.com/coggle/s3-streamlogger#upload_everyflushFile ),或者在每个请求后通过调用流来手动刷新文件。
| 归档时间: |
|
| 查看次数: |
3431 次 |
| 最近记录: |