簡體   English   中英

如何在AWS Lambda中連接ElasticSearch

[英]How to connect ElasticSearch in AWS lambda

我已經創建了ElasticSearch服務的公共實例。 我找不到有關如何將lambda函數與其連接的任何適當示例。
我想到了使用帶有JavaScript的AWS-SDK(類:AWS.ES)進行連接。 但找不到方法。
如何創建連接並對其進行基本查詢?

這是給您的示例代碼。 我已經在lambda函數中實現了

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM