You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch Python客户端连接AWS ES报非受支持发行版错误求助

错误原因分析

Elastic官方在2021年调整产品许可协议后,从7.14版本的Python elasticsearch 客户端开始内置了服务端发行版校验逻辑,会验证服务端是否为官方授权的Elasticsearch发行版。你所使用的AWS托管Elasticsearch服务(现更名为OpenSearch Service)7.10版本属于AWS基于Elasticsearch开源分支开发的衍生版本,无法通过官方客户端的校验,因此触发报错。首次运行成功是因为初始请求时校验逻辑还未完成结果缓存,后续请求触发缓存的校验结果就会抛出异常。

解决办法
  • 方案一:降级Python elasticsearch客户端到无校验逻辑的7.13及以下版本,该版本和你服务端7.10的兼容性也更强,直接执行命令:
    pip install elasticsearch==7.13.4
  • 方案二:更换为AWS官方适配的opensearch-py客户端,该客户端原生兼容AWS OpenSearch/Elasticsearch Service,不存在校验限制。替换后代码调整如下:
from opensearchpy import OpenSearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
import boto3
import json

host = '<url>.us-east-1.es.amazonaws.com'
region = 'us-east-1'

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

es = OpenSearch(
    hosts = [{'host': host, 'port': 443}],
    http_auth = awsauth,
    use_ssl = True,
    verify_certs = True,
    connection_class = RequestsHttpConnection
)

print(json.dumps(es.info(), indent=4, sort_keys=True))

安装依赖执行命令:pip install opensearch-py requests-aws4auth boto3

  • 方案三:若必须使用7.14+版本的官方客户端,可临时屏蔽校验逻辑(不推荐生产环境使用,存在未知兼容性风险),在初始化Elasticsearch对象前添加如下代码:
from elasticsearch import Elasticsearch
Elasticsearch._verified_elasticsearch = True

内容的提问来源于stack exchange,提问作者de1337ed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:24:02