PutItem - Amazon DynamoDB

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

PutItem

penting

Bagian ini mengacu pada API versi 2011-12-05, yang sudah usang dan tidak boleh digunakan untuk aplikasi baru.

Untuk dokumentasi tentang API tingkat rendah saat ini, lihat Referensi API Amazon DynamoDB.

Deskripsi

Membuat item baru, atau menggantikan item lama dengan item baru (termasuk semua atributnya). Jika item sudah ada dalam tabel tertentu dengan kunci primer yang sama, item baru sepenuhnya menggantikan item yang ada. Anda dapat melakukan penempatan bersyarat (masukkan item baru jika salah satu dengan kunci primer yang ditentukan tidak ada), atau mengganti item yang ada jika memiliki nilai atribut tertentu.

Nilai atribut tidak boleh null; atribut jenis string dan biner harus memiliki panjang lebih dari nol; dan atribut jenis set tidak boleh kosong. Permintaan dengan nilai kosong akan ditolak dengan ValidationException.

catatan

Untuk memastikan bahwa item baru tidak menggantikan item yang ada, gunakan operasi penempatan bersyarat dengan mengatur Exists ke false untuk atribut kunci primer, atau atribut-atribut.

Untuk informasi selengkapnya tentang penggunaan PutItem, lihat Bekerja dengan item dan atribut.

Permintaan

Sintaks

// This header is abbreviated. // For a sample of a complete header, see API tingkat rendah DynamoDB. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Item":{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"N":"AttributeValue2"}, "AttributeName5":{"B":"dmFsdWU="} }, "Expected":{"AttributeName3":{"Value": {"S":"AttributeValue"}, "Exists":Boolean}}, "ReturnValues":"ReturnValuesConstant"}
Nama Deskripsi Wajib
TableName

Nama tabel untuk diisi item.

Jenis: String

Ya
Item

Peta atribut untuk item, dan harus menyertakan nilai kunci primer yang menentukan item tersebut. Pasangan nama-nilai atribut lainnya dapat diberikan untuk item tersebut. Untuk informasi selengkapnya tentang kunci primer, lihat Kunci primer.

Jenis: Peta nama atribut untuk nilai atribut.

Ya
Expected

Menunjuk atribut untuk penempatan bersyarat. Parameter Expected memungkinkan Anda untuk memberikan nama atribut, dan apakah DynamoDB harus memeriksa keberadaan nilai atribut; atau apakah nilai atribut ada dan memiliki nilai tertentu sebelum mengubahnya.

Jenis: Peta nama atribut untuk nilai atribut, dan apakah nilai tersebut ada.

Tidak
Expected:AttributeName

Nama atribut untuk penempatan bersyarat.

Jenis: String

Tidak
Expected:AttributeName: ExpectedAttributeValue Gunakan parameter ini untuk menentukan apakah nilai sudah ada atau belum untuk pasangan nama-nilai atribut.

Notasi JSON berikut mengganti item jika atribut "Warna" tidak ada untuk item tersebut:

"Expected" : {"Color":{"Exists":false}}

Notasi JSON berikut memeriksa untuk melihat apakah atribut dengan nama "Warna" sudah memiliki nilai "Kuning" sebelum mengganti item tersebut:

"Expected" : {"Color":{"Exists":true,{"Value":{"S":"Yellow"}}}

Secara default, jika Anda menggunakan parameter Expected dan menyediakan Value, DynamoDB mengasumsikan bahwa atribut ada dan memiliki nilai terkini untuk diganti. Jadi Anda tidak perlu menentukan {"Exists":true}, karena hal tersebut sudah tersirat. Anda dapat mempersingkat permintaan untuk:

"Expected" : {"Color":{"Value":{"S":"Yellow"}}}
catatan

Jika Anda menentukan {"Exists":true} tanpa nilai atribut untuk diperiksa, DynamoDB mengembalikan kesalahan.

Tidak
ReturnValues

Gunakan parameter ini jika Anda ingin mendapatkan pasangan nama-nilai atribut sebelum pasangan tersebut diperbarui dengan permintaan PutItem. Nilai parameter yang memungkinkan adalah NONE (default) atau ALL_OLD. Jika ALL_OLD ditentukan, dan PutItem menimpa pasangan nama-nilai atribut, isi dari item lama akan dikembalikan. Jika parameter ini tidak tersedia atau NONE, tidak ada yang dikembalikan.

Jenis: String

Tidak

Respons

Sintaks

Contoh sintaksis berikut mengasumsikan permintaan ditentukan dalam parameter ReturnValues dari ALL_OLD; jika tidak, respons hanya memiliki elemen ConsumedCapacityUnits.

HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 85 {"Attributes": {"AttributeName3":{"S":"AttributeValue3"}, "AttributeName2":{"SS":"AttributeValue2"}, "AttributeName1":{"SS":"AttributeValue1"}, }, "ConsumedCapacityUnits":1 }
Nama Deskripsi
Attributes

Nilai atribut sebelum operasi penempatan, tetapi hanya jika parameter ReturnValues ditentukan sebagai dalam permintaan ALL_OLD.

Jenis: Peta pasangan nama-nilai atribut.

ConsumedCapacityUnits

Jumlah unit kapasitas tulis yang digunakan dalam operasi. Nilai ini menunjukkan jumlah yang diterapkan pada throughput yang disediakan. Untuk informasi selengkapnya, lihat Tabel kapasitas yang disediakan.

Jenis: Angka

Kesalahan khusus

Kesalahan Deskripsi
ConditionalCheckFailedException Pemeriksaan bersyarat gagal. Nilai atribut yang diharapkan tidak ditemukan.
ResourceNotFoundException Item atau atribut yang ditentukan tidak ditemukan.

Contoh

Untuk contoh menggunakan AWS SDK, lihatBekerja dengan item dan atribut.

Permintaan sampel

// This header is abbreviated. For a sample of a complete header, see API tingkat rendah DynamoDB. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Item": {"time":{"N":"300"}, "feeling":{"S":"not surprised"}, "user":{"S":"Riley"} }, "Expected": {"feeling":{"Value":{"S":"surprised"},"Exists":true}} "ReturnValues":"ALL_OLD" }

Respons sampel

HTTP/1.1 200 x-amzn-RequestId: 8952fa74-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 84 {"Attributes": {"feeling":{"S":"surprised"}, "time":{"N":"300"}, "user":{"S":"Riley"}}, "ConsumedCapacityUnits":1 }