Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendaftarkan repositori snapshot manual
Anda perlu mendaftarkan repositori snapshot dengan OpenSearch Service sebelum Anda dapat mengambil snapshot indeks manual. Operasi satu kali ini mengharuskan Anda menandatangani AWS permintaan dengan kredensil yang diizinkan untuk diaksesTheSnapshotRole
, seperti yang dijelaskan dalam. Prasyarat
Langkah 1: Petakan peran snapshot di OpenSearch Dasbor (jika menggunakan kontrol akses berbutir halus)
Kontrol akses detail memperkenalkan langkah tambahan saat mendaftarkan repositori. Bahkan jika Anda menggunakan otentikasi HTTP dasar untuk semua tujuan lain, Anda perlu memetakan manage_snapshots
peran ke IAM peran Anda yang memiliki iam:PassRole
izin untuk diteruskan. TheSnapshotRole
-
Arahkan ke plugin OpenSearch Dasbor untuk domain OpenSearch Layanan Anda. Anda dapat menemukan titik akhir Dasbor di dasbor domain Anda di konsol OpenSearch Layanan.
-
Dari menu utama, pilih Keamanan, Peran, lalu pilih peran manage_snapshots.
-
Pilih Pengguna yang Dipetakan, Kelola pemetaan.
-
Tambahkan peran ARN yang memiliki izin untuk diteruskan
TheSnapshotRole
. Letakkan peran ARNs di bawah peran Backend.arn:aws:iam::
123456789123
:role/role-name
-
Pilih Peta dan konfirmasikan pengguna atau peran muncul di bawah Pengguna yang dipetakan.
Langkah 2: Mendaftarkan repositori
Tab Snapshots berikut menunjukkan cara mendaftarkan direktori snapshot. Untuk opsi khusus untuk mengenkripsi snapshot manual dan mendaftarkan snapshot setelah bermigrasi ke domain baru, lihat tab yang relevan.
Menggunakan sampel klien Python
Klien Python lebih mudah diotomatisasi daripada HTTP permintaan sederhana dan memiliki kegunaan kembali yang lebih baik. Jika anda memilih untuk menggunakan metode ini untuk mendaftarkan repositori snapshot, simpan sampel kode Python berikut sebagai file Python, seperti register-repo.py
. Klien memerlukan paket AWS SDK for Python (Boto3)
Memperbarui variabel berikut dalam kode sampel: host
, region
, path
, dan payload
.
import boto3 import requests from requests_aws4auth import AWS4Auth host = '' # domain endpoint region = '' # e.g. us-west-1 service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token) # Register repository path = '/_snapshot/
my-snapshot-repo-name
' # the OpenSearch API endpoint url = host + path payload = { "type": "s3", "settings": { "bucket": "s3-bucket-name
", "base_path": "my/snapshot/directory
", "region": "us-west-1
", "role_arn": "arn:aws:iam::123456789012
:role/snapshot-role
" } } headers = {"Content-Type": "application/json"} r = requests.put(url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text) # # Take snapshot # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot' # url = host + path # # r = requests.put(url, auth=awsauth) # # print(r.text) # # # Delete index # # path = 'my-index' # url = host + path # # r = requests.delete(url, auth=awsauth) # # print(r.text) # # # Restore snapshot (all indexes except Dashboards and fine-grained access control) # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = { # "indices": "-.kibana*,-.opendistro_security,-.opendistro-*", # "include_global_state": False # } # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text) # # # Restore snapshot (one index) # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = {"indices": "my-index"} # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text)