Http 来自CloudWatch的流日志数据

Http 来自CloudWatch的流日志数据,http,stream,amazon-cloudwatch,amazon-cloudwatchlogs,Http,Stream,Amazon Cloudwatch,Amazon Cloudwatchlogs,我可以使用以下方法从CloudWatch日志流获取所有日志事件: const cwl=new AWS.CloudWatchLogs(); cwl.getLogEvents({logGroupName,logStreamName},(err,results)=>{ for(让r为results.events){ console.log(r.message); } }); 然而,我的问题是-有没有一种方法可以流式传输日志,而不是一次读取所有日志?似乎对于某些日志流,可能有一百万个事件/记录,因此可

我可以使用以下方法从CloudWatch日志流获取所有日志事件:

const cwl=new AWS.CloudWatchLogs();
cwl.getLogEvents({logGroupName,logStreamName},(err,results)=>{
for(让r为results.events){
console.log(r.message);
}
});
然而,我的问题是-有没有一种方法可以流式传输日志,而不是一次读取所有日志?似乎对于某些日志流,可能有一百万个事件/记录,因此可能有太多的数据无法一次全部读取

我查看了cloudwatchlogs.d.ts的声明文件:


看不到任何可以将日志流式传输到客户端的内容。

您不能直接流式传输日志

来自
getLogEvents
API的响应包含
nextForwardToken
nextBackwardToken
。如果不能在单个响应中返回所有事件,则可以在后续请求中使用这些事件来获取下一批事件。请看这里:


或者,您可以使用
createExportTask
API将数据获取到S3中并从中进行流式传输。不确定导出的数据是否为可流化格式

您是否使用AWS Lambda检查过此示例?您可以创建由日志流调用的自定义lambda函数,并在其中应用日志处理/筛选。