View a markdown version of this page

BatchGetItem - AWS AppSync GraphQL

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

BatchGetItem

Dokumen pemetaan BatchGetItem permintaan memungkinkan Anda memberi tahu resolver AWS AppSync DynamoDB untuk membuat BatchGetItem permintaan ke DynamoDB untuk mengambil beberapa item, berpotensi di beberapa tabel. Untuk template permintaan ini, Anda harus menentukan yang berikut:

  • Nama tabel tempat mengambil item

  • Kunci item untuk diambil dari setiap tabel

Batas DynamoDB BatchGetItem berlaku dan tidak ada ekspresi kondisi yang dapat disediakan.

Dok BatchGetItem umen pemetaan memiliki struktur sebagai berikut:

{ "version" : "2018-05-29", "operation" : "BatchGetItem", "tables" : { "table1": { "keys": [ ## Item to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } }, "table2": { "keys": [ ## Item3 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to retrieve Key { "foo" : ... typed value, "bar" : ... typed value } ], "consistentRead": true|false, "projection" : { ... } } } }

Bidang didefinisikan sebagai berikut:

BatchGetItem bidang

version

Versi definisi template. Hanya 2018-05-29 didukung. Nilai ini diperlukan.

operation

Operasi DynamoDB untuk melakukan. Untuk melakukan operasi BatchGetItem DynamoDB, ini harus disetel ke. BatchGetItem Nilai ini diperlukan.

tables

Tabel DynamoDB untuk mengambil item dari. Nilainya adalah peta di mana nama tabel ditentukan sebagai kunci peta. Setidaknya satu meja harus disediakan. tablesNilai ini diperlukan.

keys

Daftar kunci DynamoDB yang 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).

consistentRead

Apakah akan menggunakan pembacaan yang konsisten saat menjalankan GetItem operasi. Nilai ini opsional dan defaultnya false.

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 item belum diambil dari tabel, elemen null muncul di blok data untuk tabel itu.

  • Hasil pemanggilan diurutkan per tabel, berdasarkan urutan di mana mereka disediakan di dalam template pemetaan permintaan.

  • Setiap Get perintah di dalam a BatchGetItem adalah atom, namun, batch dapat diproses sebagian. Jika batch diproses sebagian karena kesalahan, kunci yang tidak diproses dikembalikan sebagai bagian dari hasil pemanggilan di dalam blok un processedKeys.

  • BatchGetItemdibatasi hingga 100 kunci.

Untuk contoh berikut permintaan template pemetaan:

{ "version": "2018-05-29", "operation": "BatchGetItem", "tables": { "authors": [ { "author_id": { "S": "a1" } }, ], "posts": [ { "author_id": { "S": "a1" }, "post_id": { "S": "p2" } } ], } }

Hasil pemanggilan yang tersedia $ctx.result adalah sebagai berikut:

{ "data": { "authors": [null], "posts": [ # Was retrieved { "author_id": "a1", "post_id": "p2", "post_title": "title", "post_description": "description", } ] }, "unprocessedKeys": { "authors": [ # This item was not processed due to an error { "author_id": "a1" } ], "posts": [] } }

Ber $ctx.error isi rincian tentang kesalahan. Data kunci, UnprocesssedKeys, dan setiap kunci tabel yang disediakan dalam template pemetaan permintaan dijamin akan hadir dalam hasil pemanggilan. Item yang telah dihapus muncul di blok data. Item yang belum diproses ditandai sebagai null di dalam blok data dan ditempatkan di dalam blok unprocessed Keys.

Untuk contoh yang lebih lengkap, ikuti tutorial DynamoDB Batch dengan AppSync di sini Tut orial: DynamoDB batch resolver.