Catatan penggunaan DynamoDB lokal - Amazon DynamoDB

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

Catatan penggunaan DynamoDB lokal

Kecuali titik akhir, aplikasi yang berjalan dengan versi Amazon DynamoDB yang dapat diunduh juga harus bekerja dengan layanan web DynamoDB. Namun, saat menggunakan DynamoDB secara lokal, Anda harus mengetahui hal berikut:

  • Jika Anda menggunakan opsi -sharedDb, DynamoDB membuat file basis data tunggal bernama shared-local-instance.db. Setiap program yang terhubung ke DynamoDB mengakses file ini. Jika Anda menghapus file, Anda kehilangan semua data yang Anda simpan di dalamnya.

  • Jika Anda menghilangkan-sharedDb, file database bernama myaccesskeyid_region.db, dengan ID kunci AWS akses dan AWS Region seperti yang muncul dalam konfigurasi aplikasi Anda. Jika Anda menghapus file, Anda kehilangan semua data yang Anda simpan di dalamnya.

  • Jika Anda menggunakan opsi -inMemory, DynamoDB tidak menulis file basis data apa pun sama sekali. Sebaliknya, semua data ditulis ke memori, dan data tidak disimpan saat Anda menghentikan DynamoDB.

  • Jika Anda menggunakan opsi -inMemory, opsi -sharedDb juga diperlukan.

  • Jika Anda menggunakan opsi -optimizeDbBeforeStartup, Anda juga harus menentukan parameter -dbPath agar DynamoDB dapat menemukan file basis datanya.

  • AWS SDK untuk DynamoDB mengharuskan konfigurasi aplikasi Anda menentukan nilai kunci akses dan nilai Region. AWS Kecuali Anda menggunakan opsi -sharedDb atau -inMemory, DynamoDB menggunakan nilai-nilai ini untuk memberi nama file basis data lokal. Nilai-nilai ini tidak harus berupa AWS nilai yang valid untuk dijalankan secara lokal. Namun, Anda mungkin merasa nyaman menggunakan nilai yang valid sehingga Anda dapat menjalankan kode di cloud di lain waktu dengan mengubah titik akhir yang Anda gunakan.

  • DynamoDB lokal selalu mengembalikan null untuk billingModeSummary.

  • DynamoDB lokal AWS_ACCESS_KEY_ID hanya dapat berisi huruf (A–Z, a–z) dan angka (0–9).

  • DynamoDB lokal tidak mendukung pemulihan oint-in-time P (PITR).

Opsi baris perintah

Anda dapat menggunakan opsi baris perintah berikut dengan versi DynamoDB yang dapat diunduh:

  • -corsvalue— Memungkinkan dukungan untuk berbagi sumber daya lintas asal (CORS) untuk. JavaScript Anda harus memberikan daftar domain tertentu yang "diizinkan" yang dipisahkan koma. Pengaturan default untuk -cors adalah tanda bintang (*), yang memungkinkan akses publik.

  • -dbPath value — Direktori tempat DynamoDB menulis file basis datanya. Jika Anda tidak menentukan opsi ini, file akan ditulis ke direktori saat ini. Anda tidak dapat menentukan -dbPath dan -inMemory sekaligus.

  • -delayTransientStatuses — Menyebabkan DynamoDB menimbulkan penundaan untuk operasi tertentu. DynamoDB (versi yang dapat diunduh) dapat melakukan beberapa tugas hampir secara instan, seperti operasi membuat/memperbarui/menghapus pada tabel dan indeks. Namun, layanan DynamoDB memerlukan lebih banyak waktu untuk tugas ini. Menyetel parameter ini membantu DynamoDB yang berjalan di komputer Anda menyimulasikan perilaku layanan web DynamoDB dengan lebih dekat. (Saat ini, parameter ini menyebabkan penundaan hanya untuk indeks sekunder global yang berstatus CREATING atau DELETING.)

  • -help — Mencetak ringkasan dan opsi penggunaan.

  • -inMemory — DynamoDB berjalan di memori alih-alih menggunakan file basis data. Saat Anda menghentikan DynamoDB, tidak ada data yang disimpan. Anda tidak dapat menentukan -dbPath dan -inMemory sekaligus.

  • -optimizeDbBeforeStartup — Mengoptimalkan tabel basis data yang mendasarinya sebelum memulai DynamoDB di komputer Anda. Anda juga harus menentukan -dbPath saat menggunakan parameter ini.

  • -port value — Nomor port yang digunakan DynamoDB untuk berkomunikasi dengan aplikasi Anda. Jika Anda tidak menentukan opsi ini, port defaultnya adalah 8000.

    catatan

    DynamoDB menggunakan port 8000 secara default. Jika port 8000 tidak tersedia, perintah ini memunculkan pengecualian. Anda dapat menggunakan opsi -port untuk menentukan nomor port yang berbeda. Untuk daftar lengkap opsi runtime DynamoDB, termasuk -port, masukkan perintah ini:

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help

  • -sharedDb — Jika Anda menentukan -sharedDb, DynamoDB menggunakan file basis data tunggal, bukan file terpisah untuk setiap kredensial dan Wilayah.

  • -disableTelemetry — Ketika ditentukan, DynamoDB lokal tidak akan mengirim telemetri apa pun.

  • -version— Mencetak versi DynamoDB lokal.

Mengatur Titik Akhir Lokal

Secara default, AWS SDK dan alat menggunakan titik akhir untuk layanan web Amazon DynamoDB. Untuk menggunakan SDK dan alat-alat dengan DynamoDB versi yang dapat diunduh, Anda harus menentukan titik akhir lokal:

http://localhost:8000

AWS Command Line Interface

Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk berinteraksi dengan DynamoDB yang dapat diunduh. Misalnya, Anda dapat menggunakannya untuk melakukan semua langkah-langkah dalam Membuat tabel dan memuat data untuk contoh kode di DynamoDB.

Untuk mengakses DynamoDB yang berjalan secara lokal, gunakan parameter --endpoint-url. Berikut ini adalah contoh menggunakan daftar tabel di AWS CLI DynamoDB di komputer Anda.

aws dynamodb list-tables --endpoint-url http://localhost:8000
catatan

Tidak AWS CLI dapat menggunakan versi DynamoDB yang dapat diunduh sebagai titik akhir default. Karena itu, Anda harus menentukan --endpoint-url dengan setiap AWS CLI perintah.

AWS SDK

Cara Anda menentukan titik akhir bergantung pada bahasa pemrograman dan AWS SDK yang Anda gunakan. Bagian berikut menjelaskan cara melakukannya:

catatan

Untuk contoh dalam bahasa pemrograman lain, lihat Memulai dengan DynamoDB dan SDK AWS.

Perbedaan antara DynamoDB yang dapat diunduh dan layanan web DynamoDB

Versi DynamoDB yang dapat diunduh ditujukan hanya untuk pengembangan dan pengujian. Sebagai perbandingan, layanan web DynamoDB adalah layanan terkelola dengan skalabilitas, ketersediaan, dan fitur daya tahan yang membuatnya sangat cocok untuk penggunaan produksi.

Versi DynamoDB yang dapat diunduh berbeda dengan layanan web dengan cara berikut:

  • Wilayah AWS dan Akun AWS berbeda tidak didukung di tingkat klien.

  • Pengaturan throughput yang disediakan diabaikan dalam DynamoDB yang dapat diunduh, meskipun operasi CreateTable memerlukannya. Untuk CreateTable, Anda dapat menentukan nomor yang Anda inginkan untuk throughput baca dan tulis yang disediakan, meskipun angka-angka ini tidak digunakan. Anda dapat memanggil UpdateTable sebanyak yang Anda inginkan per hari. Namun, perubahan nilai throughput yang disediakan akan diabaikan.

  • Operasi Scan dilakukan secara berurutan. Pemindaian paralel tidak didukung. Parameter Segment dan TotalSegments dari operasi Scan akan diabaikan.

  • Kecepatan operasi baca dan tulis pada data tabel hanya dibatasi oleh kecepatan komputer Anda. Operasi CreateTable, UpdateTable, dan DeleteTable terjadi segera, dan status tabel selalu ACTIVE. Operasi UpdateTable yang hanya mengubah pengaturan throughput yang disediakan pada tabel atau indeks sekunder global terjadi segera. Jika operasi UpdateTable membuat atau menghapus setiap indeks sekunder global, indeks tersebut melakukan transisi melalui status normal (seperti CREATING dan DELETING) sebelum status indeks menjadi ACTIVE. Tabel tetap ACTIVE selama waktu ini.

  • Operasi baca bersifat konsisten pada akhirnya. Namun, karena kecepatan DynamoDB yang berjalan di komputer Anda, sebagian besar operasi baca terlihat sangat konsisten.

  • Metrik koleksi item dan ukuran koleksi item tidak dilacak. Dalam respons operasi, null akan dikembalikan, bukan metrik koleksi item.

  • Dalam DynamoDB, terdapat batas data sebesar 1 MB yang dikembalikan per set hasil. Layanan web DynamoDB dan versi yang dapat diunduh menerapkan batas ini. Namun, ketika mengkueri indeks, layanan DynamoDB menghitung hanya ukuran kunci dan atribut terproyeksi. Sebaliknya, versi DynamoDB yang dapat diunduh menghitung ukuran keseluruhan item.

  • Jika Anda menggunakan DynamoDB Streams, laju serpihan yang dibuat mungkin berbeda. Dalam layanan web DynamoDB, perilaku pembuatan serpihan sebagian dipengaruhi oleh aktivitas partisi tabel. Ketika Anda menjalankan DynamoDB secara lokal, tidak ada pembuatan partisi tabel. Dalam kedua kasus, serpihan bersifat fana, sehingga aplikasi Anda tidak harus bergantung pada perilaku serpihan.

  • TransactionConflictExceptionstidak dilemparkan oleh DynamoDB yang dapat diunduh untuk API transaksional. Sebaiknya Anda menggunakan kerangka kerja mocking Java untuk menyimulasikan TransactionConflictExceptions di handler DynamoDB untuk menguji cara aplikasi Anda merespons transaksi yang bertentangan.

  • Di layanan web DynamoDB, apakah diakses melalui konsol atau, nama tabel peka huruf AWS CLI besar/kecil. Tabel bernama Authors dan yang bernama authors bisa ada sebagai tabel terpisah. Dalam versi yang dapat diunduh, nama tabel tidak peka huruf besar-kecil, dan upaya membuat kedua tabel ini akan menghasilkan kesalahan.

  • Penandaan tidak didukung dalam versi DynamoDB yang dapat diunduh.

  • Versi DynamoDB yang dapat diunduh mengabaikan parameter Limit di. ExecuteStatement