我正在尝试设置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"
答案 0 :(得分:0)
问题是由缺少的访问策略引起的。看起来AWS在您创建演示数据集时自动为域创建策略而不通知它。因此,对于第一个域访问策略是由AWS创建的,我不知道这一点。