【问题标题】:Is there any method in aws sdk for javascript to get the aws log insights query method results synchronously?aws sdk 中是否有任何方法可以同步获取 aws 日志洞察查询方法结果?
【发布时间】:2022-07-01 03:21:48
【问题描述】:

我正在尝试使用 sdk for javascript v3 从 aws 获取日志见解,我可以看到我们只能使用 StartQuery 安排查询,然后使用 @987654322 获得结果@ 方法。我遇到了filterLogEvents 方法,它使用正则表达式单独过滤日志事件,但我需要单独使用查询。

有什么技巧可以同步获取结果吗?

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch aws-sdk-nodejs aws-cloudwatch-log-insights


    【解决方案1】:

    我使用 'aws-sdk' v2 并设法得到这样的查询结果,希望这会有所帮助。

    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)
          }
        })

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 2018-11-22
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多