Попытка создать индекс в сервисе 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" }
}
}
}
}