Kopyalama:
anlık S3 depolar için kayıt süreci bir rolü ve imzalı istek gerektirir.
S3 bitiş noktasını kaydetmek için imzalı bir istek oluşturmak için bir python betiği kullanabilirsiniz. Aşağıdaki örneğe bakınız.
Bütün bu süreç burada açıklanmaktadır: http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html Ama özetlemek gerekirse, şu adımları izleyin:
1) IAM politikası oluşturun ve bir role ekleyin ekleyin:
bir örnek Rolü
: bunun gibi bir örnek politikası önceki rolüne eklenmelidir
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
: aşağıdaki gibi görünüyor Manuel indeks anlık almadan önce yeni rolüne erişimi olan bir IAM kullanıcı olarak bir anlık Directory
kaydedilmesi
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"s3:ListBucket"
],
"Effect":"Allow",
"Resource":[
"arn:aws:s3:::es-index-backups"
]
},
{
"Action":[
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"iam:PassRole"
],
"Effect":"Allow",
"Resource":[
"arn:aws:s3:::es-index-backups/*"
]
}
]
}
2), Amazon Elasticsearch Servisi anlık dizini kaydetmeniz gerekir. Bu bir kerelik işlem, AWS isteğinizi Amazon ES'ye izin veren IAM rolü ile imzalamanızı gerektirir.
kaydet Aşağıdaki örnek Python kodunu ve aşağıdaki değerleri değiştirin: bölge: Anlık görüntü bitiş noktası oluşturdu AWS bölge: Amazon ES etki alanı için son nokta aws_access_key_id: IAM kimlik aws_secret_access_key: IAM kimlik yolu : Anlık görüntü havuzunun konumu Not: Python istemcisi, boto paketinin, anlık görüntü havuzunuzu kaydettireceğiniz bilgisayara yüklenmesini gerektirir. S3 deposu kaydedildikten sonra boto.connection ithalat 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__":
client = ESConnection(
region='us-east-1',
host='search-weblogs-etrt4mbbu254nsfupy6oiytuz4.us-east-1.es.a9.com',
aws_access_key_id='my-access-key-id',
aws_secret_access_key='my-access-key', is_secure=False)
print 'Registering Snapshot Repository'
resp = client.make_request(method='PUT',
path='/_snapshot/weblogs-index-backups',
data='{"type": "s3","settings": { "bucket": "es-index-backups","region": "us-east-1","role_arn": "arn:aws:iam::123456789012:role/MyElasticsearchRole"}}')
body = resp.read()
print body
dan , el alıp curl kullanarak anlık geri mümkün olacaktır.Örnek olarak:
el anlık görüntü almak için:
curl -XPUT 'http://<Elasticsearch_domain_endpoint>/_snapshot/snapshot_repository/snapshot_name'
elle anlık geri yüklemek için:
curl -XPOST 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.a9.com/_snapshot/weblogs-index-backups/snapshot_1/_restore'
Not: Amazon ES kümeye sizin endeksleri anlık geri yükleyemezsiniz zaten aynı ada sahip indeksler içerir. Şu anda, Amazon ES, Elasticsearch _close API'sini desteklememektedir, bu nedenle aşağıdaki alternatiflerden birini kullanmanız gerekir: Aynı Amazon ES etki alanındaki dizinleri silin, ardından anlık görüntüyü geri yükleyin
Bu iş parçacığı tam olarak çalışmayı sağlayan işlemi açıklar: https://forums.aws.amazon.com/thread.jspa?threadID=217287 – Val
Merhaba Aynı sorunu yaşıyorum. Bunu yapmayı başardın mı? Eğer evet ise, bazı anlayışlar sağlayabilir misiniz? – panipsilos