阅读背景:

无法使用boto.cloudsearch2将文档上载到aws cloudsearch

来源:互联网 

This is my code to try uploading documents to cloud search

这是我尝试将文档上传到云搜索的代码

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()

This is the error I got:

这是我得到的错误:

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'

which is I believe is a misleading error. When I add this line to init() of /Library/Python/2.7/site-packages/boto/cloudsearch2/document.py

我相信这是一个误导性的错误。当我将这一行添加到/Library/Python/2.7/site-packages/boto/cloudsearch2/document.py的init()时

print self.content

the real problem seems to appears as:

真正的问题似乎表现为:

{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'}

Any insights on how to overcome this annoying permission error? I am able to search with given access id and secret key but just fail to upload !!!

有关如何克服这个恼人的权限错误的任何见解?我能够使用给定的访问ID和密钥进行搜索,但是无法上传!

1 个解决方案

#1


5  

CloudSearch allows you to configure separate access policies for querying vs doc submission. It sounds like maybe your doc submission policy is more restrictive than your query policy (which is a common setup).

CloudSearch允许您为查询和文档提交配置单独的访问策略。听起来好像您的文档提交策略比查询策略(这是一种常见的设置)更具限制性。

You can leave doc submission wide open to test things and come up with an access policy later using the guide at https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html.

您可以使用https://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-access.html上的指南,随时将文档提交保持开放以进行测试,并提出访问策略。

Sample wide-open configuration:

示例全开配置:

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

Here's where to go in the AWS web console:

以下是AWS Web控制台的位置:


分享到: