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
-sharedDb
opsi, DynamoDB membuat file database tunggal bernama .db. shared-local-instance 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 SDKsUntuk DynamoDB mengharuskan konfigurasi aplikasi Anda menentukan nilai kunci akses dan AWS nilai Region. 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 Point-in-time mendukung recovery (). PITR
Topik
Opsi baris perintah
Anda dapat menggunakan opsi baris perintah berikut dengan versi DynamoDB yang dapat diunduh:
-
-cors
value
— 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 download) dapat melakukan beberapa tugas hampir seketika, seperti operasi pada tabel dan indeks. create/update/delete 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 memperkenalkan penundaan hanya untuk indeks sekunder global yang berada dalam salah satu CREATINGatau DELETINGstatus.) -
-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 adalah8000
.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 SDKs dan alat menggunakan titik akhir untuk layanan web Amazon DynamoDB. Untuk menggunakan SDKs dan alat dengan versi DynamoDB 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.
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 SDKs
Cara Anda menentukan titik akhir tergantung pada bahasa pemrograman dan AWS SDK Anda gunakan. Bagian berikut menjelaskan cara melakukannya:
-
Java: Mengatur AWS Wilayah dan titik akhir(DynamoDB lokal mendukung untuk Java V1 AWS SDK dan V2)
-
CodeSamples.Jawa. RegionAndEndpoint . NET: Mengatur AWS Wilayah dan titik akhir
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. UntukCreateTable
, Anda dapat menentukan nomor yang Anda inginkan untuk throughput baca dan tulis yang disediakan, meskipun angka-angka ini tidak digunakan. Anda dapat memanggilUpdateTable
sebanyak yang Anda inginkan per hari. Namun, perubahan nilai throughput yang disediakan akan diabaikan. -
Operasi
Scan
dilakukan secara berurutan. Pemindaian paralel tidak didukung. ParameterSegment
danTotalSegments
dari operasiScan
akan diabaikan. -
Kecepatan operasi baca dan tulis pada data tabel hanya dibatasi oleh kecepatan komputer Anda.
CreateTable
,UpdateTable
, danDeleteTable
operasi terjadi segera, dan status tabel selaluACTIVE.UpdateTable
operasi yang mengubah hanya pengaturan throughput yang disediakan pada tabel atau indeks sekunder global segera terjadi. Jika sebuahUpdateTable
operasi membuat atau menghapus indeks sekunder global apa pun, maka indeks tersebut bertransisi melalui keadaan normal (seperti CREATING danDELETING, masing-masing) sebelum menjadi status. ACTIVE Tabel tetap ACTIVE selama 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.
-
TransactionConflictExceptions
tidak dilemparkan oleh DynamoDB yang dapat diunduh untuk transaksional. APIs Sebaiknya Anda menggunakan kerangka kerja mocking Java untuk menyimulasikanTransactionConflictExceptions
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 bernamaauthors
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