Я использую пакет npmasticsearch для поиска в моем домене AWS ES. Кажется, все работает нормально, когда я использую Postman для выполнения запросов POST с моими учетными данными AWS IAM.
Я хотел сделать то же самое в моем коде (node.js). Я ссылался на этот ответ здесь:
Как совершать звонки на elissearch apis через NodeJS?
Вот код:
const elasticsearch = require('elasticsearch');
const awsHttpClient = require('http-aws-es');
const AWS = require('aws-sdk');
const client = new elasticsearch.Client({
host: 'my-aws-es-endpoint',
connectionClass: awsHttpClient,
amazonES: {
region: 'us-east-1',
credentials: new AWS.Credentials('my-access-key','my-secret-key')
}
});
Но когда я запускаю client.search (), происходит сбой с ошибкой:
Elasticsearch ERROR: 2018-10-31T15:12:22Z
Error: Request error, retrying
POST https://my-endpoint.us-east-1.es.amazonaws.com/my-index/student/_search => Data must be a string or a buffer
Это также дает мне предупреждение
Elasticsearch WARNING: 2018-10-31T15:12:22Z
Unable to revive connection: https://my-endpoint.us-east-1.es.amazonaws.com/
Когда я использую только aws-sdk, он работает нормально (возможно, потому что я подписываю запрос там?)
Может кто-нибудь подсказать, что я тут не так делаю?