BatchDeleteItem - AWS AppSync GraphQL

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

BatchDeleteItem

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

  • Nama tabel tempat menghapus item

  • Kunci item yang akan dihapus dari setiap tabel

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

Objek BatchDeleteItem permintaan memiliki struktur berikut:

type DynamoDBBatchDeleteItemRequest = { operation: 'BatchDeleteItem'; tables: { [tableName: string]: { [key: string]: any }[]; }; };

Bidang didefinisikan sebagai berikut:

BatchDeleteItem bidang

operation

Operasi DynamoDB untuk melakukan. Untuk melakukan operasi BatchDeleteItem DynamoDB, ini harus diatur ke. BatchDeleteItem Nilai ini diperlukan.

tables

Tabel DynamoDB untuk menghapus item dari. Setiap tabel adalah daftar kunci DynamoDB yang mewakili kunci utama item yang akan dihapus. Item DynamoDB mungkin memiliki kunci hash tunggal, atau kunci hash dan kunci sortir, tergantung pada struktur tabel. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Mengetik sistem (pemetaan permintaan). Setidaknya satu meja harus disediakan. tablesNilai diperlukan.

Hal-hal yang perlu diingat:

  • Berlawanan dengan DeleteItem operasi, item yang dihapus sepenuhnya tidak dikembalikan dalam respons. Hanya kunci yang dilewati yang dikembalikan.

  • Jika item belum dihapus dari tabel, elemen null muncul di blok data untuk tabel itu.

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

  • Setiap Delete perintah di dalam a BatchDeleteItem adalah atom. Namun batch dapat diproses sebagian. Jika batch diproses sebagian karena kesalahan, kunci yang belum diproses dikembalikan sebagai bagian dari hasil pemanggilan di dalam blok UnprocessedKeys.

  • BatchDeleteItemterbatas pada 25 kunci.

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

Untuk contoh berikut fungsi request handler:

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

Hasil pemanggilan yang tersedia ctx.result adalah sebagai berikut:

{ "data": { "authors": [null], "posts": [ // Was deleted { "authorId": "a1", "postId": "p2" } ] }, "unprocessedKeys": { "authors": [ // This key was not processed due to an error { "authorId": "a1" } ], "posts": [] } }

ctx.errorBerisi rincian tentang kesalahan. Data kunci, UnprocessedKeys, dan setiap tombol tabel yang disediakan dalam objek permintaan fungsi dijamin akan hadir dalam hasil pemanggilan. Item yang telah dihapus ada di blok data. Item yang belum diproses ditandai sebagai null di dalam blok data dan ditempatkan di dalam blok UnprocessedKeys.