meu*_*lth 8 python proxy elasticsearch
我是新的stackoverflow,所以,如果我犯了一个错误,对不起.
我必须编写一个python脚本,它使用Elasticsearch收集一些数据,然后将数据写入数据库.我正在努力用elasticsearch收集数据,因为我工作的公司背后是代理.
该脚本无需代理即可运行..但我不知道如何将代理设置传递给Elasticsearch.
以下代码无需代理即可运行:
es = Elasticsearch(['https://user:password@logs.net/elasticsearch'])
res = es.search(index=index, body=request, search_type="count")
Run Code Online (Sandbox Code Playgroud)
当我在代理后面时,我尝试了以下内容:
es = Elasticsearch(['https://user:password@logs.net/elasticsearch'], _proxy = 'http://proxy.org', _proxy_headers = {'basic_auth': 'user:pw'})
res = es.search(index=index, body=request, search_type="count")
return res
Run Code Online (Sandbox Code Playgroud)
有没有人知道我必须传递Elasticsearch的关键字,所以它使用代理?
你能帮忙的话,我会很高兴.
谢谢.
我在GitHub上得到了答案:
https://github.com/elastic/elasticsearch-py/issues/275#issuecomment-143781969
再次感谢你!
from elasticsearch import RequestsHttpConnection
class MyConnection(RequestsHttpConnection):
def __init__(self, *args, **kwargs):
proxies = kwargs.pop('proxies', {})
super(MyConnection, self).__init__(*args, **kwargs)
self.session.proxies = proxies
es = Elasticsearch([es_url], connection_class=MyConnection, proxies = {'https': 'http://user:pw@proxy.org:port'})
print(es.info())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |