Не могу получить список индексов aws эластичного поиска - PullRequest
0 голосов
/ 02 июля 2018

У меня есть скрипт Python:

from requests_aws4auth import AWS4Auth
from elasticsearch import Elasticsearch, RequestsHttpConnection

session = boto3.session.Session()
credentials = session.get_credentials()
awsauth = AWS4Auth(credentials.access_key,
         credentials.secret_key,
         session.region_name, 'es',
         session_token=credentials.token)



es_client = Elasticsearch(
                        "vpc-mydomain-elasticsearch-xxxxxxxxx.region.es.amazonaws.com:9200",
                        http_auth=awsauth,
                        use_ssl=False,
                        verify_certs=False,
                        connection_class=RequestsHttpConnection)

print(es_client.info())

Когда я запускаю скрипт, я получаю эту ошибку:

    raise ConnectionTimeout('TIMEOUT', str(e), e)
elasticsearch.exceptions.ConnectionTimeout: ConnectionTimeout caused by - ReadTimeout(HTTPConnectionPool(host='10.0.2.2', port=3128): Read timed out. (read timeout=10))

В группе безопасности кластера порт 9200 открыт для 0.0.0.0/0. ( 10.0.2.2 - это ip-адрес моего бродячего компьютера, порт 3128 - это порт прослушивания cntlm ) Как получить эту работу?

EDIT

Я тоже пробовал это, но это не сработало:

 curl -XGET https://vpc-mydomain-elasticsearch-xxxxxxxxx.region.es.amazonaws.com:9200/_cat/indices?v
curl: (56) Received HTTP code 403 from proxy after CONNECT

1 Ответ

0 голосов
/ 04 июля 2018

Попробуйте следующие решения:

  • Измените время ожидания по умолчанию, равное 10 секундам, на request_timeout = n, где n может быть числом больше 10, в идеале - 30. Увеличьте, если ошибка не исчезла.
  • Проверьте ваш config /asticsearch.yml, чтобы убедиться, что переменная http.proxy указывает на правильный адрес.
  • Попробуйте изменить порт с 9200 на 443.
  • Измените use_ssl на True.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...