DynamoDB GetItem dengan AWS CLI
Di CLI, key-nya adalah sebuah string DynamoDB JSON, setiap nilai dibungkus dengan tipenya ({"S": "..."}, {"N": "..."}), yang berarti sebagian besar kesulitan dalam aws dynamodb get-item adalah soal quoting di shell alih-alih soal DynamoDB. Key-nya sendiri tetap harus berupa primary key lengkap.
Kode
aws dynamodb get-item \
--table-name 'Music' \
--key '{"Artist":{"S":"Arturo Sandoval"},"SongTitle":{"S":"Cubano Chant"}}' \
--projection-expression '#proj0, #proj1, #proj2, #proj3' \
--expression-attribute-names '{"#proj0":"Artist","#proj1":"SongTitle","#proj2":"AlbumTitle","#proj3":"Year"}'Responsnya mencetak item itu dalam DynamoDB JSON:
{
"Item": {
"Artist": {"S": "Arturo Sandoval"},
"SongTitle": {"S": "Cubano Chant"},
"AlbumTitle": {"S": "Danzon"},
"Year": {"N": "1994"}
}
}Penjelasan
- Kalau tidak ketemu, tak ada apa pun yang tercetak — tanpa
Item, tanpa objek kosong, kode keluar 0. Menyalurkan itu langsung kejqgagal pada input kosong, jadi tangkap keluarannya dan uji string-nya sebelum Anda mem-parse-nya. - Quoting adalah pekerjaan yang sebenarnya — pakai kutip tunggal untuk JSON-nya di bash dan zsh supaya
$dan!tetap literal.cmddan PowerShell di Windows mengikuti aturan berbeda; taruh key-nya di sebuah berkas dan lewatkan--key file://key.jsonalih-alih beradu dengannya. --querybukan--projection-expression—--queryadalah JMESPath, diterapkan di mesin Anda setelah item itu dibaca dan ditagih.--projection-expressionadalah yang dilihat DynamoDB. Keduanya tidak mengurangi biaya baca (mengapa).- Alias
#proj0itu wajib, bukan gaya-gayaan —Yearada di daftar reserved word AWS, dan menyebutnya langsung dalam sebuah projection akan ditolak. - Tanyakan berapa biayanya — tambahkan
--return-consumed-capacity TOTALdan responsnya mendapat blokConsumedCapacity. Untuk item ini, di bawah 4 KB, itu terbaca 0,5 unit kapasitas, atau 1,0 begitu Anda menambahkan--consistent-read(pertimbangannya). - CLI v2 memaginasi keluaran Anda — secara default semuanya melewati
lessdi macOS dan Linux (dengan flagFRX) ataumoredi Windows. Dalam sebuah skrip itu jarang yang Anda inginkan: lewatkan--no-cli-pager, atau setelAWS_PAGERke string kosong.
Lakukan secara visual
Mengetik gumpalan --key itu dengan tangan adalah tempat waktu Anda habis. DynamoDB Expression Builder membangun DynamoDB JSON dan map alias-nya dari sebuah formulir, lalu mengembalikan perintah aws dynamodb yang siap dijalankan.
DynoTable melakukan hal yang sama terhadap tabel sungguhan: jelajahi baris dalam sebuah grid, lalu ekspor query di baliknya kembali sebagai perintah CLI. Unduh DynoTable.
Panduan terkait
- Query vs. Scan — kapan satu
get-itemmengalahkan sebuahquery. - Cara kerja partition key DynamoDB — mengapa
get-itembutuh key lengkap. - DynamoDB ResourceNotFoundException — error pertama yang biasa muncul di sini: nama tabel atau region yang salah.
- "The provided key element does not match the schema" — key yang Anda lewatkan tidak cocok dengan key schema tabelnya.
Referensi
- GetItem — Amazon DynamoDB API Reference
- get-item — AWS CLI Command Reference
- Read consistency — Amazon DynamoDB Developer Guide
- Using the pagination options in the AWS CLI (client-side pager) — AWS CLI User Guide
Terakhir diverifikasi 2026-07-28 terhadap dokumentasi resmi AWS yang ditautkan di atas.