#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.