Har*_*hit 8 amazon-web-services python-3.x elasticsearch aws-elasticsearch
我在项目中使用 AWS Elasticsearch 和 async elasticsearch-py 包来连接集群。
AWS Elasticsearch 版本 7.9
Python包:elasticsearch[async]==7.12.0
我无法使用该AWS4Auth
库初始化异步 Elasticsearch 客户端(官方 AWS ES 客户端 Python 文档中提到)
它应该成功与客户端连接。但是,它给了我这个错误:
AttributeError: 'AWS4Auth' object has no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)
分享我的代码片段:
AttributeError: 'AWS4Auth' object has no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)
小智 1
我认为使用 AWS4Auth 您必须绑定到 RequestsHttpConnection。
默认连接类基于 urllib3,它比可选的基于请求的类更具性能和轻量级。仅当您需要任何请求高级功能(例如自定义身份验证插件等)时才使用 RequestsHttpConnection。
来自https://elasticsearch-py.readthedocs.io/en/master/transports.html
尝试:
es = AsyncElasticsearch(
hosts=[{'host': host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
Run Code Online (Sandbox Code Playgroud)
或非异步版本(如果上面的代码不起作用):
es = Elasticsearch(
hosts=[{'host': host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2944 次 |
最近记录: |