mikeda
February 23, 2018, 4:55am
1
AWSでelasticsearchを使用しているのですが、
ESのsnapshotをS3に置きたいと思っています。
pythonのelasticsearchモジュールを用いて、
S3のバケット直下にsnapshotを置くことは成功しているのですが、
S3のバケットのあるディレクトリを指定して、ディレクトリの直下にsnapshotを置くことができません。
どのようにすれば、ディレクトリ指定ができるのでしょうか?
elasticsearch.client.snapshot.create()
の引数に、
snapshot='ディレクトリ名/snapshot名'
と設定をすると、
must not contain the following characters [ , ", *, \, <, |, ,, >, /, ?]
のように怒られてしまいます。
curl(pycurl)で実行すれば解決できそうな気もしますが、elasticsearchモジュールを使用した方法で解決したいと思っています。
よろしくお願いします。
tsgkdt
(tsgkdt)
February 23, 2018, 5:53am
2
https://www.elastic.co/guide/en/elasticsearch/plugins/6.2/repository-s3-repository.html
こちらにあるrepositoryの設定でbase_pathを指定してはどうでしょう?
es = Elasticsearch('http://xxx.xxx.xxx.xxx:9200')
body_params = {
'type': 's3',
'settings': {
'bucket': 'es.test.root' ,
'base_path': 'child'
}
}
es.snapshot.create_repository(repository='forum0223', body=body_params)
es.snapshot.create(repository='forum0223', snapshot='test123')
このようにすることで、es.test.root/child 以下にsnapshotのデータ群が落ちるようになると思います。
mikeda
February 23, 2018, 6:10am
3
ありがとうございます。
教えて頂いた対策で解決しました!
system
(system)
Closed
March 23, 2018, 6:10am
4
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.