Kosongkan klaster DB Amazon Neptune menggunakan API reset cepat - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kosongkan klaster DB Amazon Neptune menggunakan API reset cepat

API REST reset cepat Neptune memungkinkan Anda mereset grafik Neptune dengan cepat dan mudah, menghapus semua datanya.

Anda dapat melakukan ini dalam notebook Neptunus menggunakan sihir baris %db_reset.

catatan

Fitur ini tersedia mulai dari Rilis mesin Neptune 1.0.4.0.

  • Dalam kebanyakan kasus, operasi reset cepat selesai dalam beberapa menit. Durasi dapat bervariasi tergantung pada beban pada klaster saat operasi dimulai.

  • Operasi reset cepat tidak menghasilkan di I/Os tambahan.

  • Ukuran volume penyimpanan tidak menyusut setelah reset cepat. Sebaliknya, penyimpanan yang digunakan kembali sebagai data baru dimasukkan. Ini berarti bahwa ukuran volume snapshot yang diambil sebelum dan sesudah operasi reset cepat akan sama. Ukuran volume klaster yang dipulihkan menggunakan snapshot yang dibuat sebelum dan sesudah operasi reset cepat juga akan sama

  • Sebagai bagian dari operasi reset, semua instance di cluster DB dimulai ulang.

    catatan

    Dalam kondisi yang jarang terjadi, restart server ini juga dapat mengakibatkan failover cluster.

penting

Menggunakan reset cepat dapat merusak integrasi klaster DB Neptune Anda dengan layanan lainnya. Misalnya:

  • Pengaturan ulang cepat menghapus semua data aliran dari basis data Anda dan benar-benar me-reset pengaliran. Ini berarti bahwa konsumen pengaliran Anda mungkin tidak lagi bekerja tanpa konfigurasi baru.

  • Reset cepat menghapus semua metadata tentang SageMaker sumber daya yang digunakan oleh Neptunus ML, termasuk pekerjaan dan titik akhir. Mereka terus ada di SageMaker, dan Anda dapat terus menggunakan SageMaker titik akhir yang ada untuk kueri inferensi Neptunus ML, tetapi API manajemen Neptunus ML tidak lagi berfungsi dengannya.

  • Integrasi seperti full-text-search integrasi dengan ElasticSearch juga dihapus dengan reset cepat, dan harus dibuat kembali secara manual sebelum dapat digunakan lagi.

Untuk menghapus semua data dari klaster DB Neptune menggunakan API
  1. Pertama, Anda menghasilkan token yang kemudian dapat Anda gunakan untuk melakukan reset basis data. Langkah ini dimaksudkan untuk membantu mencegah siapa pun dari ketidaksengajaan mereset basis data.

    Anda melakukan ini dengan mengirimkan permintaan HTTP POST ke titik akhir /system pada instans penulis klaster DB Anda untuk menentukan tindakan initiateDatabaseReset.

    Perintah curl menggunakan tipe konten JSON akan menjadi:

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "initiateDatabaseReset" }'

    Atau, menggunakan tipe konten x-www-form-urlencoded:

    curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://your_writer_instance_endpoint:8182/system \ -d 'action=initiateDatabaseReset '

    Permintaan initiateDatabaseReset mengembalikan token reset dalam respon JSON-nya, seperti ini:

    { "status" : "200 OK", "payload" : { "token" : "new_token_guid" } }

    Token tetap valid selama satu jam (60 menit) setelah dikeluarkan.

    Jika anda mengirim permintaan ke instans pembaca atau ke titik akhir status, Neptune akan membuang ReadOnlyViolationException.

    Jika Anda mengirim beberapa permintaan initiateDatabaseReset, hanya token terbaru yang dihasilkan akan valid untuk langkah kedua, di mana Anda benar-benar melakukan reset.

    Jika server dimulai ulang tepat setelah permintaan initiateDatabaseReset, token yang dihasilkan menjadi tidak valid, dan Anda perlu mengirim permintaan baru untuk mendapatkan token baru.

  2. Selanjutnya, Anda mengirim premintaan performDatabaseReset dengan token yang Anda dapatkan kembali dari initiateDatabaseReset ke titik akhir /system pada instans penulis klaster DB Anda. Ini akan menghapus semua data dari klaster DB Anda.

    Perintah curl menggunakan tipe konten JSON adalah:

    curl -X POST \ -H 'Content-Type: application/json' \ https://your_writer_instance_endpoint:8182/system \ -d '{ "action" : "performDatabaseReset", "token" : "token_guid" }'

    Atau, menggunakan tipe konten x-www-form-urlencoded:

    curl -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ https://your_writer_instance_endpoint:8182/system \ -d 'action=performDatabaseReset&token=token_guid'

    Permintaan mengembalikan respon JSON. Jika permintaan diterima, tanggapannya adalah:

    { "status" : "200 OK" }

    Jika token yang Anda kirim tidak cocok dengan token yang dikeluarkan, responnya terlihat seperti ini:

    { "code" : "InvalidParameterException", "requestId":"token_guid", "detailedMessage" : "System command parameter 'token' : 'token_guid' does not match database reset token" }

    Jika permintaan diterima dan reset dimulai, server memulai ulang dan menghapus data. Anda tidak dapat mengirim permintaan lain untuk klaster DB sementara sedang direset.

Menggunakan API reset cepat dengan IAM-auth

Jika Anda memiliki IAM-auth yang diaktifkan pada klaster DB Anda, Anda dapat menggunakan awscurl untuk mengirim perintah reset cepat yang diotentikasi menggunakan IAM-auth:

Menggunakan awscurl untuk mengirim permintaan cepat-reset dengan IAM-auth
  1. Mengatur variabel lingkungan AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY dengan benar (dan juga AWS_SECURITY_TOKEN jika Anda menggunakan kredensial sementara).

  2. Permintaan initiateDatabaseReset seperti ini:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "initiateDatabaseReset" }'
  3. Permintaan performDatabaseReset seperti ini:

    awscurl -X POST --service neptune-db "$SYSTEM_ENDPOINT" \ -H 'Content-Type: application/json' --region us-west-2 \ -d '{ "action" : "performDatabaseReset" }'

Menggunakan meja kerja Neptune line magic %db_reset untuk me-reset klaster DB

Meja kerja Neptune mendukung line magic %db_reset yang memungkinkan Anda melakukan reset basis data cepat di notebook Neptune.

Jika Anda memanggil magic tanpa parameter apapun, Anda melihat layar menanyakan apakah Anda ingin menghapus semua data dalam klaster Anda, dengan kotak centang meminta Anda untuk mengetahui bahwa data cluster tidak akan lagi tersedia setelah Anda menghapusnya. Pada saat itu, Anda dapat memilih untuk melanjutkan dan menghapus data, atau membatalkan operasi.

Pilihan yang lebih berbahaya adalah mengaktifkan %db_reset dengan opsi --yes atau -y, yang menyebabkan penghapusan akan dilakukan tanpa pemberitahuan lebih lanjut.

Anda juga dapat melakukan reset dalam dua langkah, sama seperti dengan REST API:

%db_reset --generate-token

Tanggapannya adalah:

{ "status" : "200 OK", "payload" : { "token" : "new_token_guid" } }

Lalu lakukan:

%db_reset --token new_token_guid

Tanggapannya adalah:

{ "status" : "200 OK" }

Kode kesalahan umum untuk operasi reset cepat

Kode kesalahan Neptune Status HTTP Pesan Contoh

InvalidParameterException

400

Parameter perintah sistem 'Tindakan' memiliki nilai tidak didukung'XXX'

Parameter tidak valid

InvalidParameterException

400

Terlalu banyak nilai yang disediakan untuk: tindakan

Permintaan reset cepat dengan lebih dari satu tindakan dikirim dengan header x-www-form-urlencoded 'Content-type:application/ '

InvalidParameterException

400

Duplikasi bidang 'tindakan'

Permintaan reset cepat dengan lebih dari satu tindakan yang dikirim dengan header 'Content-Type: aplikasi/json'

MethodNotAllowedException

400

Rute buruk:/bad_endpoint

Permintaan dikirim ke titik akhir yang salah

MissingParameterException

400

Parameter yang dibutuhkan hilang: [action]

Permintaan reset cepat tidak berisi parameter 'tindakan' yang diperlukan

ReadOnlyViolationException

400

Menulis tidak diizinkan pada instans replika baca

Permintaan reset cepat dikirim ke pembaca atau titik akhir status

AccessDeniedException

403

Token Autentikasi Hilang

Permintaan reset cepat dikirim tanpa tanda tangan yang benar ke titik akhir DB dengan IAM-auth yang diaktifkan

ServerShutdownException

500

Reset basis data sedang berlangsung. Silakan coba lagi kueri setelah klaster tersedia.

Kueri Gremlin/Sparql yang ada dan akan datang gagal.