ElasticService Bad Request узел js - PullRequest
0 голосов
/ 23 мая 2019

Попытка создать индекс в сервисе ElasticSearch для домена в AWS. Версия ElasticSearch - 6.4.

Изначально я получал 406 (Not Acceptable) ошибку в качестве ответа. При дальнейшем расследовании, пончик версии EalsticSearch 6.x требует явной настройки опции заголовков. Однако при этом я получаю 400 (Bad Request) в качестве ответа.

Есть идеи, что я облажался?

Мой код:

 var https = require('https'),
     aws4  = require('aws4'),
     schema = require('./info2.json'),
     datelib = require('date-and-time');

var sendReq = function(requestData) {
    return new Promise((resolve, reject) => {
        https.request(requestData, function(res) {
            if(res.statusCode==200) {
                console.log(res);
                resolve();
            }
            else {
                console.error(res);
                reject(res.statusCode);
            }
        }
        ).end(requestData.body || '');
    });
};

 var formReqData = function(host, method, path, data) {
    return {
          host: host,
          method: method,
          path: path,
          body: data ? JSON.stringify(data) : '',
          headers: {
                'Content-Type':'application/json'
          }
    }
};


var index = <index-name>;
var endPoint = '<domain-endpoint>.es.amazonaws.com';
var date = new Date();
const year = date.getFullYear();

var delIndex = formReqData(endPoint, 'DELETE', `/${index}-${year}`);

var createIndex = formReqData(endPoint, 'PUT', `/${index}-${year}`, schema);

executeRequest(aws4.sign(deleteIndexRequestData)).then(executeRequest(aws4.sign(createIndexRequestData)));

Мой JSON определить:

{
    "settings" : {
        "number_of_shards" : 1,
        "number_of_replicas" : 2
    },
    "mappings" : {
        "audit" : {
            "properties" : {
                "audit1" : { "type" : "text" }
            }
        }
    }
}
...