【问题标题】:How to connect ElasticSearch in AWS lambda如何在 AWS lambda 中连接 ElasticSearch
【发布时间】:2018-09-21 05:35:20
【问题描述】:

我已经创建了 ElasticSearch 服务的公共实例。我找不到任何关于如何将我的 lambda 函数连接到它的适当示例。
我想过使用带有 javascript 的 AWS-SDK(类:AWS.ES)来建立连接。但是找不到方法。
如何创建连接并使用它进行基本查询?

【问题讨论】:

    标签: javascript aws-lambda aws-sdk aws-elasticsearch


    【解决方案1】:

    这是给您的示例代码。我已经在我的 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;
    }
    

    【讨论】:

    • 需要通过node_modules上传
    猜你喜欢
    • 2016-01-29
    • 2018-11-16
    • 1970-01-01
    • 2019-04-04
    • 2018-02-08
    • 2019-12-24
    • 2018-05-04
    • 2021-02-01
    • 2017-09-06
    相关资源
    最近更新 更多