Не удалось загрузить документы в облачный поиск aws с помощью boto.cloudsearch2

Это мой код, чтобы попробовать загрузить документы в облачный поиск

from boto.cloudsearch2.layer2 import Layer2
conn_config = {
    'region': 'us-east-1',
    'aws_access_key_id': os.getenv('AWS_ACCESS'),
    'aws_secret_access_key': os.getenv('AWS_SECRET'),
    'debug': 2
}
conn = Layer2(**conn_config)
domain = conn.lookup(my_domain)
doc_service = domain.get_document_service()
doc_service.add(my_id, my_fields)
doc_service.commit()

Это ошибка, которую я получил:

Traceback (most recent call last):
line 32, in <module> doc.commit()
File "/Library/Python/2.7/site-packages/boto/cloudsearch2/document.py", line 205, in commit return CommitResponse(r, self, sdf)
File "/Library/Python/2.7/site-packages/boto/cloudsearch2/document.py", line 250, in      __init__
self.adds = self.content['adds']
KeyError: 'adds'

что я считаю вводящей в заблуждение ошибкой. Когда я добавляю эту строку в init() файла /Library/Python/2.7/site-packages/boto/cloudsearch2/document.py

print self.content

реальная проблема выглядит так:

{u'status': u'error', u'message': u'User: anonymous is not authorized to perform:    cloudsearch:document on resource: arn:aws:cloudsearch:us-east-1:053216739513:domain/dev-audit', u'errors': [{u'message': u'[*Deprecated*: Use the outer message field] User: anonymous is not authorized to perform: cloudsearch:document on resource: arn:aws:cloudsearch: ...'}], u'__type': u'#AccessDenied'}

Любые идеи о том, как преодолеть эту досадную ошибку разрешения? Я могу искать с заданным идентификатором доступа и секретным ключом, но просто не могу загрузить !!!


person Cocoa    schedule 21.10.2014    source источник
comment
Удачи решить это? У меня такая же проблема.   -  person apardes    schedule 15.01.2015
comment
@cocoa, если приведенный ниже ответ решит вашу проблему, примите его. В противном случае укажите, как это не удается решить.   -  person tedder42    schedule 19.02.2015


Ответы (1)


CloudSearch позволяет настраивать отдельные политики доступа для запросов и отправки документов. Похоже, что ваша политика отправки документов более строгая, чем ваша политика запросов (что является обычной настройкой).

Вы можете оставить отправку документа широко открытой, чтобы протестировать ситуацию и разработать политику доступа позже, используя руководство по адресу http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html..

Пример широко открытой конфигурации:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "cloudsearch:*"
    }
  ]
}

Вот куда можно перейти в веб-консоли AWS:

Политики доступа к CloudSearch

person alexroussos    schedule 24.10.2014