如何连接到boto中的现有CloudSearch域?

Tho*_*ing 6 python boto amazon-web-services amazon-cloudsearch

我刚刚开始使用boto连接到Amazon CloudSearch.

我让这些示例正常工作,但我找不到任何连接到现有域的示例,所有示例都创建了一个新域.

我四处寻找get_domain,但如果我在连接对象上调用它,那就失败了.

>>> conn.get_domain('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Layer2' object has no attribute 'get_domain'
Run Code Online (Sandbox Code Playgroud)

有关如何连接到现有域的任何建议?

[编辑]我从这开始:http://boto.cloudhackers.com/en/latest/cloudsearch_tut.html

所以,我正在这样做

import boto
conn = boto.connect_cloudsearch()
Run Code Online (Sandbox Code Playgroud)

gar*_*aat 10

您可以执行以下操作:conn.list_domains()返回所有当前域的域对象列表,也可以执行conn.lookup('foo')返回指定域名的域对象.


jat*_*tin 7

这是完美的解决方案. 我正在使用boto 2.38.0

我遇到了其他问题.然后我制作了这个脚本来连接aws搜索域并获得结果

import boto.cloudsearch2
from boto.cloudsearch2.layer2 import Layer2
from boto.cloudsearch2.domain import Domain

# from boto.cloudsearch.domain import Domain
conn = boto.cloudsearch2.connect_to_region("xxxxxx",
                aws_access_key_id='xxxxxxxxxx',
                aws_secret_access_key='xxxxxxxxx')

domain_data =  conn.describe_domains('domaainname')

domain_data = (domain_data['DescribeDomainsResponse']
                          ['DescribeDomainsResult']
                          ['DomainStatusList'])

domain = Domain(conn, domain_data[0])
search_service = domain.get_search_service()
results = search_service.search(q="abc")

print map(lambda x: x, results)
Run Code Online (Sandbox Code Playgroud)

让我知道任何错误.我希望这对所有人都有用.