如何在nodejs中使用'aws-sdk'读取cloudwatch日志

8yoxcaq7  于 2022-12-18  发布在  Node.js
关注(0)|答案(3)|浏览(133)

如何在nodejs中使用aws-sdk读取cloudwatch日志?
我不知道如何初始化我的配置,我在哪里可以找到任何键/端点到我的cloudwatch?
有人能给我举个例子吗?

import AWS from 'aws-sdk'; 
const cwInstance = new AWS.CloudWatchLogs({
  .....?
})
suzh9iv8

suzh9iv81#

import AWS from 'aws-sdk'; 

const cloudwatchlogs = new AWS.CloudWatchLogs({apiVersion: '2014-03-28'});
const params = {
  logGroupName: 'STRING_VALUE', /* required */
  logStreamName: 'STRING_VALUE', /* required */
  endTime: 'NUMBER_VALUE',
  limit: 'NUMBER_VALUE',
  nextToken: 'STRING_VALUE',
  startFromHead: true || false,
  startTime: 'NUMBER_VALUE'
};
cloudwatchlogs.getLogEvents(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

有关详细信息,请查看AWS文档

pvabu6sv

pvabu6sv2#

async function queryCloudWatch(queryRequest: StartQueryRequest): Promise<GetQueryResultsResponse> {
    const queryResponse: StartQueryResponse = await cloudwatchLogs.startQuery(queryRequest).promise()

    if (!queryResponse.queryId) return {}

    let response: GetQueryResultsResponse | undefined = undefined

    while (!response || response.status === 'Running') {
        response = await cloudwatchLogs.getQueryResults({
            "queryId": queryResponse.queryId
        }).promise()
    }

    return response;
}
23c0lvtd

23c0lvtd3#

const AWS = require('aws-sdk');
AWS.config.setPromisesDependency(require('bluebird'));
AWS.config.update({region: 'us-west-2'});
const cloudWatchLogs = new AWS.CloudWatchLogs({apiVersion: '2014-03-28'});

const timestamp = new Date();
const endtTime = timestamp.getTime();
const params = {
    endTime: endtTime,
    filterPattern: `"${stringToSearch}"`,
    startTime: new Date (endtTime - 5 * 60 * 60* 24 * 1000).getTime(), // Last 5 days
    logGroupName: 'myLogGroup',
    limit : 10
};

const events = await cloudWatchLogs.filterLogEvents(params).promise();
console.log(`successfully queryCloudWatchLogs ${stringToSearch} results: ${JSON.stringify(events)}`);
const results = events.events.map(e => e.message)
console.log(`successfully queryCloudWatchLogs ${stringToSearch} results (${results.length}): ${JSON.stringify(results)}`);

相关问题