首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws中是否有用于javascript的方法来同步获取aws日志洞察查询方法的结果?

aws中是否有用于javascript的方法来同步获取aws日志洞察查询方法的结果?
EN

Stack Overflow用户
提问于 2022-02-23 10:35:57
回答 1查看 606关注 0票数 3

我正在尝试使用javascript v3从aws获得日志洞察力,我可以看到,我们只能使用StartQuery调度查询,稍后可以分别使用getQueryResults方法获得结果。我遇到了filterLogEvents方法,它单独使用Regex过滤日志事件,但我需要单独使用查询。

有什么黑客可以同步得到结果吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-30 19:21:48

我使用了‘aws’v2,并设法获得这样的查询结果,希望这会有所帮助。

代码语言:javascript
复制
const cl = new AWS.CloudWatchLogs({
  region: 'your-region',
})

const params = {
  endTime: new Date().getTime() /* required */ ,
  logGroupName: 'your-log-group-name' /* required */ ,
  queryString: `fields @message, @timestamp
      | parse @message /\\[(?<time>[\\S ]+): (?<msg_type>\\S+)\\/.+\\[(?<task_id>\\S+)\\](?<msg>.+)/
      | filter task_id = '${taskId}'
      | sort @timestamp desc
      | display @timestamp, time,msg_type,msg`,
  startTime: new Date().getTime(),/*start time*/
}


const getResults = (data) => {
    cl.getQueryResults({
        queryId: data.queryId
      }, (_err, _data) => {
        if (_err) {
          console.log(_err, _err.stack)
        } 
        else {
          const res = _data.results ? .map((r) => {
            return {
              timestamp: r.find((el) => el.field === '@timestamp') ? .value,
              type: r.find((el) => el.field === 'msg_type') ? .value,
              msg: r.find((el) => el.field === 'msg') ? .value,
            }
          })
          /*check the status and run the function again*/
          if (_data.status.toLowerCase() === 'running') {
            getResults(data)
          }
        })
    }
    cl.startQuery(params, (err, data) => {
      if (err) {
        console.log(err, err.stack)
      } else {
        getResults(data)
      }
    })

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71235333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档