gpt4 book ai didi

python - curl 请求以恢复 Elasticsearch 中的快照有效,但python中的相同请求不起作用

转载 作者:行者123 更新时间:2023-12-03 01:41:24 24 4
gpt4 key购买 nike

我正在使用aws Elasticsearch ,并且正在将一些索引恢复到我的 Elasticsearch 中,因此我使用两个方法:

1)我使用curl如下:

 curl -XPOST 'xxxxxxx.us-east-1.es.amazonaws.com/_snapshot/test/snapshot_4/_restore' -d '{"indices": "movies"}'

哪个工作正常。
现在,我正在尝试使过程自动化,因此我使用python来实现,这是我的代码:
from boto.connection import AWSAuthConnection

class ESConnection(AWSAuthConnection):

def __init__(self, region, **kwargs):
super(ESConnection, self).__init__(**kwargs)
self._set_auth_region_name(region)
self._set_auth_service_name("es")

def _required_auth_capability(self):
return ['hmac-v4']

if __name__ == "__main__":

clientDestination = ESConnection(
region='us-east-1',
host=xxxxxxx.es.amazonaws.com',
aws_access_key_id='xxxxxxx',
aws_secret_access_key='xxxxx', is_secure=False)


print("Restoring snapshots")

resprestore = clientSource.make_request(method='POST',
path='/_snapshot/test/snapshot_4/_restore',
data='{"indices": "movies"}')
print(resprestore.read())

当我运行它时,我得到:
{"error":{"root_cause":[{"type":"snapshot_restore_exception","reason":"[test:snapshot_4/DR01R_WRR2ihiiKe1HgrzA] cannot restore index [movies] because it's open"}],"type":"snapshot_restore_exception","reason":"[test:snapshot_4/DR01R_WRR2ihiiKe1HgrzA] cannot restore index [movies] because it's open"},"status":500}

问题是什么?我应该在客户请求中添加anyb参数吗?那么为什么 curl 呢?我需要向python API请求添加任何参数吗?

最佳答案

试试这个 :

from elasticsearch import Elasticsearch, RequestsHttpConnection
es = Elasticsearch(host=“127.0.0.1”, port=1234, use_ssl=True, verify_certs=False,connection_class=RequestsHttpConnection)
print(es)

这应该发挥作用,并将您连接到AWS

我连接到127.0.0.1,因为我在AWS中创建了通往 Elasticsearch 的隧道
因此,如果您不使用隧道,则可以直接使用它

关于python - curl 请求以恢复 Elasticsearch 中的快照有效,但python中的相同请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com