2016-03-15 39 views
1

我正在嘗試設置CloudSearch。起初,我用他們的演示數據集(「IMDB」)試了一下,它的工作都很完美。AWS CloudSearch拋出EndpointConnectionError異常

然後我創建了一個新的域來將我們的數據導出到它。但是,連接到新域的所有嘗試都會導致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

該問題是由缺少訪問策略造成的。看起來AWS在您創建演示數據集時自動爲域創建策略,而無需通知它。所以對於第一個域訪問策略是由AWS創建的,我不知道這一點。