Python使用Amazon Textract出现Endpoint连接错误如何解决
Amazon Textract EndpointConnectionError 报错解决方法
你遇到的报错核心原因是使用了非法的AWS区域标识USA,AWS服务区域的标识格式为地理位置缩写+数字,例如美国东部1区是us-east-1、美国西部2区是us-west-2,不存在USA这个区域代码,因此boto3生成了不存在的服务端点地址。
botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "https://textract.USA.amazonaws.com/"
通常不需要手动指定Endpoint URL,只要正确配置区域参数即可,可任选以下一种方式修改:
- 方式1:初始化Textract客户端时直接指定正确区域
注意选择的区域需要已开通Amazon Textract服务,且和你存储文件的S3桶所在区域保持一致,避免出现跨区域访问权限问题。代码示例:import boto3 # 替换为你实际使用的AWS区域代码 textract_client = boto3.client('textract', region_name='us-east-1') - 方式2:修改本地AWS配置文件
打开家目录下的.aws/config文件,将region = USA的配置改为正确的区域值,示例:[default] region = us-east-1 - 方式3:修改环境变量配置
检查你当前环境的AWS_DEFAULT_REGION环境变量,若值为USA,改为正确的区域代码即可。
如果确实有特殊场景需要手动指定Endpoint URL,可按以下格式初始化客户端:
textract_client = boto3.client( 'textract', region_name='us-east-1', # 替换为对应区域的Textract服务端点 endpoint_url='https://textract.us-east-1.amazonaws.com' )
验证修改结果
修改完成后可执行以下代码打印当前服务端点,确认地址不存在USA字段即可正常使用:
print(textract_client._endpoint.host)
内容的提问来源于stack exchange,提问作者user15256253
相关产品推荐
相关产品推荐

