我们已经使用 kubernetes 部署了 Elasticsearch(8.3),为 Elasticseach 定义了 ingress 作为https://elasticsearch.url.com/es
,但是当我使用相同的 Python elasticsearch 包连接到 Elasticsearch 时,我收到以下错误:
注意:我尝试提供端口号(https://elasticsearch.url.com:9200/es/
),但仍然不起作用。
ValueError:URL 必须包含"方案"、"主机"和"端口"组件(即"https://localhost:9200")
我使用以下代码进行连接:
from elasticsearch import Elasticsearch
client = Elasticsearch(
["https://elasticsearch.url.com/es/"],
http_auth=('username', 'password')
)
请在这里帮助我如何解决这个问题。
客户端期望类似https://elasticsearch.url.com:9200/
,因为最后一个/
之后的任何内容都被视为某种路径/操作,例如_search
或索引名称,以便Elasticsearch根据该上下文执行某些操作
您可能需要删除 URL 的尾随es
部分,然后您可以使用 https://elasticsearch.url.com:80/'(假设入口端口 80 重定向到 Elasticsearch 的端口 9200)