Как подключить ElasticSearch в AWS лямбда - PullRequest
0 голосов
/ 21 сентября 2018

Я создал публичный экземпляр сервиса ElasticSearch.Я не могу найти подходящих примеров того, как подключить к нему мою лямбда-функцию.
Я подумал об использовании AWS-SDK (класс: AWS.ES) с javascript для установления соединения.Но не могу найти, как это сделать.
Как мне создать соединение и выполнить с ним базовый запрос?

1 Ответ

0 голосов
/ 21 сентября 2018

Это пример кода для вас.Я реализовал в моей функции лямбда

var elasticsearch=require('elasticsearch');
var esInput = getRequireFormat(data);

elasticSearch(esInput, function(err, response) {
  if (err) {
    callback(null, err);
  } else {
    callback(null, response);
  }
});

function elasticSearch(data, callback) {
  var client = new elasticsearch.Client({
    hosts: [
      process.env['elasticsearch'] // lambda and elastic search connection
    ]
  });
  client.bulk({
    body: data // query
  }, function(err) {
    if (err) {
      callback(err);
    } else {
      callback(null, 'Success');
    }
  });
}

function getRequireFormat(data) {
  data = JSON.parse(data.toString());
  var i;
  var length = data.length * 2;
  var x = 0;

  for (i = 0; i < length;) {
    (function(i) {

      const json = {
        'index': {
          '_index': data.name.toLowerCase(),
          '_type': data.type,
          '_id': data.x
        }
      };
      data.splice(i, 0, json);
      x = x + 1;
    })(i);
    i = i + 2;
  }
  return data;
}
...