View a markdown version of this page

BatchPutItem - AWS AppSync GraphQL

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

BatchPutItem

Ob BatchPutItem jek permintaan memungkinkan Anda memberi tahu fungsi AWS AppSync DynamoDB untuk membuat BatchWriteItem permintaan ke DynamoDB untuk menempatkan beberapa item, berpotensi di beberapa tabel. Untuk objek permintaan ini, Anda harus menentukan yang berikut:

  • Nama tabel tempat meletakkan item

  • Item lengkap untuk dimasukkan ke dalam setiap tabel

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

Ob BatchPutItem jek permintaan memiliki struktur sebagai berikut:

type DynamoDBBatchPutItemRequest = { operation: 'BatchPutItem'; tables: { [tableName: string]: { [key: string]: any}[]; }; };

Bidang didefinisikan sebagai berikut:

BatchPutItem bidang

operation

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

tables

Tabel DynamoDB untuk memasukkan item. Setiap entri tabel mewakili daftar item DynamoDB untuk dimasukkan untuk tabel khusus ini. Setidaknya satu meja harus disediakan. Nilai ini diperlukan.

Hal-hal yang perlu diingat:

  • Item yang dimasukkan sepenuhnya dikembalikan dalam respons, jika berhasil.

  • Jika item belum dimasukkan dalam tabel, elemen null ditampilkan di blok data untuk tabel itu.

  • Item yang disisipkan diurutkan per tabel, berdasarkan urutan di mana mereka disediakan di dalam objek permintaan.

  • Setiap Put perintah di dalam a BatchPutItem 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.

  • BatchPutItemdibatasi hingga 25 item.

  • Operasi ini tidak didukung bila digunakan dengan deteksi konflik. Menggunakan keduanya secara bersamaan dapat mengakibatkan kesalahan.

Untuk contoh berikut handler permintaan fungsi:

import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId, name, title } = ctx.args; return { operation: 'BatchPutItem', tables: { authors: [util.dynamodb.toMapValues({ authorId, name })], posts: [util.dynamodb.toMapValues({ authorId, postId, title })], }, }; }

Hasil pemanggilan yang tersedia ctx.result adalah sebagai berikut:

{ "data": { "authors": [ null ], "posts": [ // Was inserted { "authorId": "a1", "postId": "p2", "title": "title" } ] }, "unprocessedItems": { "authors": [ // This item was not processed due to an error { "authorId": "a1", "name": "a1_name" } ], "posts": [] } }

Ber ctx.error isi rincian tentang kesalahan. Data kunci, unprocessEditems, dan setiap kunci tabel yang disediakan dalam objek permintaan dijamin akan hadir dalam hasil pemanggilan. Item yang telah disisipkan berada di blok data. Item yang belum diproses ditandai sebagai null di dalam blok data dan ditempatkan di dalam blok unprocessEditems.