Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
TransactGetItems
Dokumen pemetaan TransactGetItems permintaan memungkinkan Anda memberi tahu resolver AWS AppSync DynamoDB untuk membuat TransactGetItems permintaan ke DynamoDB untuk mengambil beberapa item, berpotensi di beberapa tabel. Untuk template permintaan ini, Anda harus menentukan yang berikut:
-
Nama tabel dari setiap item permintaan tempat mengambil item
-
Kunci dari setiap item permintaan untuk diambil dari setiap tabel
Batas DynamoDB TransactGetItems berlaku dan tidak ada ekspresi kondisi yang dapat disediakan.
Dok TransactGetItems umen pemetaan memiliki struktur sebagai berikut:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "table1", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } }, ## Second request item { "table": "table2", "key": { "foo": ... typed value, "bar": ... typed value }, "projection" : { ... } } ] }
Bidang didefinisikan sebagai berikut:
TransactGetItems bidang
-
version -
Versi definisi template. Hanya
2018-05-29didukung. Nilai ini diperlukan. -
operation -
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi
TransactGetItemsDynamoDB, ini harus disetel ke.TransactGetItemsNilai ini diperlukan. -
transactItems -
Item permintaan untuk disertakan. Nilai adalah array item permintaan. Setidaknya satu item permintaan harus disediakan.
transactItemsNilai ini diperlukan.-
table -
Tabel DynamoDB untuk mengambil item dari. Nilai adalah string dari nama tabel.
tableNilai ini diperlukan. -
key -
Kunci DynamoDB mewakili kunci utama item yang akan diambil. Item DynamoDB mungkin memiliki kunci hash tunggal, atau kunci hash dan kunci pengurutan, tergantung pada struktur tabel. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Sistem tipe (pemetaan permintaan).
projection-
Proyeksi yang digunakan untuk menentukan atribut yang akan dikembalikan dari operasi DynamoDB. Untuk informasi selengkapnya tentang proyeksi, lihat Pro yeksi. Ini adalah bidang opsional.
-
Hal-hal yang perlu diingat:
-
Jika transaksi berhasil, urutan item yang diambil di
itemsblok akan sama dengan urutan item permintaan. -
Transaksi dilakukan dengan cara semua atau tidak sama sekali. Jika ada item permintaan yang menyebabkan kesalahan, seluruh transaksi tidak akan dilakukan dan detail kesalahan akan dikembalikan.
-
Item permintaan yang tidak dapat diambil bukanlah kesalahan. Sebagai gantinya, elemen null muncul di blok item di posisi yang sesuai.
-
Jika kesalahan transaksi adalah TransactionCanceledException,
cancellationReasonsblok akan diisi. Urutan alasan pembatcancellationReasonsalan dalam blok akan sama dengan urutan item permintaan. -
TransactGetItemsterbatas pada 100 item permintaan.
Untuk contoh berikut permintaan template pemetaan:
{ "version": "2018-05-29", "operation": "TransactGetItems", "transactItems": [ ## First request item { "table": "posts", "key": { "post_id": { "S": "p1" } } }, ## Second request item { "table": "authors", "key": { "author_id": { "S": a1 } } } ] }
Jika transaksi berhasil dan hanya item yang diminta pertama yang diambil, hasil pemanggilan yang tersedia $ctx.result adalah sebagai berikut:
{ "items": [ { // Attributes of the first requested item "post_id": "p1", "post_title": "title", "post_description": "description" }, // Could not retrieve the second requested item null, ], "cancellationReasons": null }
Jika transaksi gagal karena TransactionCanceledException disebabkan oleh item permintaan pertama, hasil pemanggilan yang tersedia $ctx.result adalah sebagai berikut:
{ "items": null, "cancellationReasons": [ { "type":"Sample error type", "message":"Sample error message" }, { "type":"None", "message":"None" } ] }
Ber $ctx.error isi detail tentang kesalahan. I tem kunci dan CancellationReasons di jamin akan ada di. $ctx.result
Untuk contoh yang lebih lengkap, ikuti tutorial Transaksi DynamoDB dengan AppSync di sini Tut orial: DynamoDB transaksi resolver.