Ошибка клиента AWS OpenSearch: не удалось проверить, является ли сервер Elasticsearch

#amazon-web-services #elasticsearch #opensearch

Вопрос:

Я пытаюсь написать лямбду, чтобы получить данные из домена OpenSearach.

 const { Client } = require('@opensearch-project/opensearch');
const { createAWSConnection, awsGetCredentials } = require('@acuris/aws-es-connection');

const test = async () => {

    const awsCredentials = await awsGetCredentials();
    const AWSConnection = createAWSConnection(awsCredentials);
    const client = new Client({
        ...AWSConnection,
        node: 'https://<domain-name>.us-east-2.es.amazonaws.com'
    });

    // inside async func
    await client.cat.help();
};
test(); 

Ошибка:

 (node:32926) ProductNotSupportedSecurityError: The client is unable to verify that the server is Elasticsearch due to security privileges on the server-side. Some functionality may not be compatible if the server is running an unsupported product.
 

Комментарии:

1. Вы нашли решение этой проблемы?

2. Я еще не тестировал ни один из ответов, пока работаю с API-интерфейсами rest…

3. Хорошо. Вы пытались создать пользователя на AWS и добавить его в группу, в которой действует политика доступа aws elasticsearch? Это правильные учетные данные для использования.

4. Если вы используете мелкозернистый контроль доступа, вы можете обратиться к этому блогу: antstack.io/blog/getting-started-with-open-search или для обычного доступа да, разрешения IAM будут работать,

Ответ №1:

Я столкнулся с той же ошибкой, но использовал @elasticsearch lib вместо @opensearch-project. Может быть, ты тоже сможешь это попробовать. Ошибка была устранена путем понижения версии библиотеки @elasticsearch.

Комментарии:

1. можете ли вы сказать, какую версию вы использовали?

Ответ №2:

Попробуйте использовать клиент Elasticsearch версии 7.13.0. Согласно документам, это последний клиент Elasticsearch, совместимый с OpenSearch.