AWS CloudSearch引发EndpointConnectionError异常

时间:2016-03-15 16:39:51

标签: python amazon-web-services boto3

我正在尝试设置CloudSearch。起初我尝试使用他们的演示数据集(" IMDB"),这一切都很完美。

然后我创建了一个新域来将数据导出到其中。但是,连接到新域的所有尝试都会导致EndpointConnectionError异常。我尝试使用和不使用索引,上传和获取文档,所有都有相同的例外。

重现问题的简单代码:

import boto3
cloudsearch = boto3.client('cloudsearch') # we store credentials in ~/.aws/
endpoint_url = cloudsearch.describe_domains(DomainNames=['DOMAINNAME',])['DomainStatusList'][0]['SearchService']['Endpoint']
cloudsearchdomain = boto3.client('cloudsearchdomain', endpoint_url='https://%s' % (endpoint_url,))

result = cloudsearchdomain.search(query='anything')
print result

DOMAINNAME是带有IMDB演示数据集的域时,此代码运行良好,但是一旦我将其切换到新域名,它就开始抛出此异常:

botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "https://search-DOMAINNAME-bcoaescnsbrp2h5ojzyhljdc4u.us-west-2.cloudsearch.amazonaws.com/2013-01-01/documents/batch?format=sdk"

1 个答案:

答案 0 :(得分:0)

问题是由缺少的访问策略引起的。看起来AWS在您创建演示数据集时自动为域创建策略而不通知它。因此,对于第一个域访问策略是由AWS创建的,我不知道这一点。