2016-03-15 2 views
1

Я пытаюсь настроить CloudSearch. Сначала я попробовал это с их демо-набором («IMDB»), и все это работало просто отлично.AWS CloudSearch throws Исключение 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, и я не знал об этом.

Смежные вопросы