2017-07-14 18 views
1

私はelasticsearchデータベースを使用してデータを保存していますが、データベースからデータを取得しようとするとエラーが発生します。ここでElasticsearch RESTリクエストの認証トークンがありません

データを作成し、インデックス作成のための私のコードです:私はこのプログラムを実行するときしかし、それらのラインの第二は、エラーが発生し

es = Elasticsearch() 

es.index(index='weather', doc_type='data', body=doc) 

、ここでは完全なトレースバックです:

Traceback (most recent call last): 
File "weatherScraper.py", line 79, in <module> 
    main() 
File "weatherScraper.py", line 73, in main 
    es.index(index='weather', doc_type='data', body=doc) 
File "/home/alec/.local/lib/python2.7/site-packages/elasticsearch/client/utils.py", line 73, in _wrapped 
    return func(*args, params=params, **kwargs) 
File "/home/alec/.local/lib/python2.7/site-packages/elasticsearch/client/__init__.py", line 298, in index 
    _make_path(index, doc_type, id), params=params, body=body) 
File "/home/alec/.local/lib/python2.7/site-packages/elasticsearch/transport.py", line 312, in perform_request 
    status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore, timeout=timeout) 
File "/home/alec/.local/lib/python2.7/site-packages/elasticsearch/connection/http_urllib3.py", line 128, in perform_request 
    self._raise_error(response.status, raw_data) 
File "/home/alec/.local/lib/python2.7/site-packages/elasticsearch/connection/base.py", line 125, in _raise_error 
    raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info) 
elasticsearch.exceptions.AuthenticationException: TransportError(401, u'security_exception', u'missing authentication token for REST request [/weather/data]') 

答えて

3

''認証トークンがありません 'は、このElasticsearchインスタンスと通信できるようになる前に認証する必要があることを意味します。ドキュメントのインデックスを作成するには、ユーザーに書き込みアクセス権が必要です。シェルでは、例えばhttp://user:[email protected]:post

:あなたは、このようなURLにユーザー名とパスワードを含めることができ

export ES_ENDPOINT="http://usernameWithWriteAccess:[email protected]:9200" 

を次にpythonで:

es = Elasticsearch(os.environ['ES_ENDPOINT']) 
関連する問題