使用Amazon Kendra时Sagemaker出现EndpointConnectionError区域不匹配问题
问题分析与解决
出现这个问题的核心原因是你的Amazon Kendra客户端没有明确指定ap-south-1区域,导致SDK自动使用了默认区域(这里默认是eu-north-1),和你的索引所在区域不匹配。
解决步骤:
1. 初始化Kendra客户端时指定区域
修改代码,在创建kendra客户端的时候明确加上region_name='ap-south-1':
import boto3 # 明确指定ap-south-1区域初始化Kendra客户端 kendra = boto3.client('kendra', region_name='ap-south-1') response = kendra.query( QueryText = "retrieve blue colored shoes from the inventory data", IndexId = "xxxxxx" )
2. 检查Notebook环境的默认AWS区域
Sagemaker Notebook实例的默认区域可能和你的资源区域不一致,执行以下命令查看当前默认区域:
aws configure get region
如果输出是eu-north-1,执行以下命令修改默认区域为ap-south-1:
aws configure set region ap-south-1
3. 检查环境变量
环境变量AWS_DEFAULT_REGION可能会覆盖配置文件设置,在Notebook里执行以下代码查看:
import os print(os.environ.get('AWS_DEFAULT_REGION'))
如果输出是eu-north-1,执行以下代码修改:
os.environ['AWS_DEFAULT_REGION'] = 'ap-south-1'
内容的提问来源于stack exchange,提问作者Apoorva
相关产品推荐
相关产品推荐

