AWS OpenSearch Serverless连接报错:'Session'对象无'token'属性
问题:迁移至AWS OpenSearch Serverless创建索引时出现
'Session' object has no attribute 'token'错误 我们正准备从Elasticsearch迁移至AWS OpenSearch Serverless,尝试在新环境中创建索引。能成功获取aws_session_token,但无法连接OpenSearch,报错'Session' object has no attribute 'token'。怀疑是boto会话配置问题或botocore需额外配置,也不排除权限缺失可能,但暂不认为是该原因。需求是成功创建OpenSearch测试索引。
配置代码如下:
botoclient = boto3.client('sts', region_name = region, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key,verify = False) response = botoclient.get_session_token() aws_session_token = response["Credentials"]["SessionToken"] session1 = boto3.Session( aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, aws_session_token=aws_session_token ) auth = AWSV4SignerAuth(session1, region, service) botosession = OpenSearch( hosts = [{'host': host, 'port': 443}], http_auth = auth, use_ssl = True, verify_certs = True, connection_class = RequestsHttpConnection, pool_maxsize = 20 ) index_name = 'python-test-index' index_body = { 'settings': { 'index': { 'number_of_shards': 4 } } } response1 = botosession.indices.create(index_name, body=index_body) print('\nCreating index:') print(response1)
解决方案
核心问题
AWSV4SignerAuth要求传入botocore的Session对象,而非boto3的Session对象。boto3.Session没有token属性,而botocore.session.Session才具备该属性,这是报错的直接原因。
修复步骤
替换会话对象:改用botocore Session并注入临时凭证
from botocore.session import Session # 初始化botocore会话 botocore_session = Session() # 设置STS获取的临时凭证 botocore_session.set_credentials( aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, token=aws_session_token ) # 传入botocore会话到认证器 auth = AWSV4SignerAuth(botocore_session, region, service)简化凭证流程(可选):如果环境已配置AWS默认凭证链(环境变量、IAM角色等),可直接从boto3 Session中提取botocore会话:
session = boto3.Session() # 提取内部botocore会话 auth = AWSV4SignerAuth(session._session, region, service)权限确认:确保IAM身份拥有以下必要权限:
aoss:CreateIndexaoss:DescribeIndexsts:GetSessionToken(若使用临时凭证)
版本适配:升级相关依赖至稳定版,避免版本兼容问题:
pip install --upgrade opensearch-py botocore boto3
内容的提问来源于stack exchange,提问作者user2214162
相关产品推荐
相关产品推荐

