Как создать мультииндекс с помощью той же самой лямбда-функции в Cloud Watch Logs - PullRequest
0 голосов
/ 14 мая 2019

Я хочу отправить данные CloudWatchLogs в ES Cluster, но у меня есть два типа данных, которые регистрируются в одной группе журналов, и я хочу, чтобы они были по-разному проиндексированы в ES Cluster.

Например,

Log 1:

{"mylog": "hello world"}

Log 2:

{"mylog": "foo bar"}

Теперь, когда я подключаю это к ES через Lambda, ниже приведен фрагмент кода для Lambda, который автоматически генерируется AWS.

   // index name format: cwl-YYYY.MM.DD
     var indexName = [
         'cwl-' + timestamp.getUTCFullYear(),              // year
         ('0' + (timestamp.getUTCMonth() + 1)).slice(-2),  // month
         ('0' + timestamp.getUTCDate()).slice(-2)          // day
     ].join('.');

    var source = buildSource(logEvent.message, logEvent.extractedFields);
    source['@id'] = logEvent.id;
    source['@timestamp'] = new Date(1 * logEvent.timestamp).toISOString();
    source['@message'] = logEvent.message;
    source['@owner'] = payload.owner;
    source['@log_group'] = payload.logGroup;
    source['@log_stream'] = payload.logStream;

Я хочу, чтобы оба типа журнала были проиндексированы по-разному.Ниже я попробовал.

   // index name format: cwl-YYYY.MM.DD
    // var indexName = [
      //   'cwl-' + timestamp.getUTCFullYear(),              // year
        // ('0' + (timestamp.getUTCMonth() + 1)).slice(-2),  // month
         //('0' + timestamp.getUTCDate()).slice(-2)          // day
     //].join('.');

    var source = buildSource(logEvent.message, logEvent.extractedFields);
    source['@id'] = logEvent.id;
    source['@timestamp'] = new Date(1 * logEvent.timestamp).toISOString();
    source['@message'] = logEvent.message;
    source['@owner'] = payload.owner;
    source['@log_group'] = payload.logGroup;
    source['@log_stream'] = payload.logStream;
var log1 = payload.mylog;
if(log1 === "hello world")
{
    // assign a different index
}

else if(log1 === "foo bar")
{
    // assign a different index
}

Вопрос 1: Можем ли мы получить доступ к свойству, которое есть в моих данных JSON, как payload.mylog

Вопрос 2: Могу ли я получить доступ к свойствукак logEvent.mylog?

...