Nouveau à Elasticsecearch. Je suivais ce guide pour obtenir des choses configurées: https://john.soban.ski/boto3-ec2-toamazon-élasticsearch.html
J'ai couru le script "Connect_To_es.py", et curieusement cela a fonctionné la première fois, mais dans une exécution ultérieure, elle a commencé à lancer cette erreur:
Traceback (most recent call last):
File "../connect_to_es.py", line 21, in <module>
print(json.dumps(es.info(), indent=4, sort_keys=True))
File "/home/ubuntu/projects/.venv/lib/python3.8/site-packages/elasticsearch/client/utils.py", line 168, in _wrapped
return func(*args, params=params, headers=headers, **kwargs)
File "/home/ubuntu/projects/.venv/lib/python3.8/site-packages/elasticsearch/client/__init__.py", line 294, in info
return self.transport.perform_request(
File "/home/ubuntu/projects/.venv/lib/python3.8/site-packages/elasticsearch/transport.py", line 413, in perform_request
_ProductChecker.raise_error(self._verified_elasticsearch)
File "/home/ubuntu/projects/.venv/lib/python3.8/site-packages/elasticsearch/transport.py", line 630, in raise_error
raise UnsupportedProductError(message)
elasticsearch.exceptions.UnsupportedProductError: The client noticed that the server is not a supported distribution of Elasticsearch
The Elasticsearch python Version de la bibliothèque J'ai 7.14, et mon élasticsearch sur AWS est en cours d'exécution 7.10. Toute réflexion sur ce qui se passe ici?
Copie du code:
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
import boto3
import json
Host = '<url>.us-east-1.es.amazonaws.com'
region = 'us-east-1'
service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)
es = Elasticsearch(
hosts = [{'Host': Host, 'port': 443}],
http_auth = awsauth,
use_ssl = True,
verify_certs = True,
connection_class = RequestsHttpConnection
)
print(json.dumps(es.info(), indent=4, sort_keys=True))
Comme certaines des autres réponses indiquent, vous pouvez rétrograder en ce moment mais opensearch-py est une meilleure solution à long terme
Il devrait s'agir d'un remplacement d'une chute d'élasticsearch-py et il sera mis à jour et corrigé au fil du temps. Il soutient OSS Elasticsearch et Opensearch.