

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

# BatchGetItem
<a name="js-aws-appsync-resolver-reference-dynamodb-batch-get-item"></a>

Objek `BatchGetItem` permintaan memungkinkan Anda memberi tahu fungsi AWS AppSync DynamoDB untuk membuat `BatchGetItem` permintaan ke DynamoDB untuk mengambil beberapa item, berpotensi di beberapa tabel. Untuk objek permintaan ini, Anda harus menentukan yang berikut:
+ Nama tabel tempat untuk mengambil item dari
+ Kunci item untuk mengambil dari setiap tabel

Batas `BatchGetItem` DynamoDB berlaku **dan tidak ada ekspresi kondisi** yang dapat diberikan.

Objek `BatchGetItem` permintaan memiliki struktur berikut:

```
type DynamoDBBatchGetItemRequest = {
  operation: 'BatchGetItem';
  tables: {
    [tableName: string]: {
      keys: { [key: string]: any }[];
      consistentRead?: boolean; 
      projection?: {
        expression: string;
        expressionNames?: { [key: string]: string };
      };
    };
  };
};
```

Bidang didefinisikan sebagai berikut:

## BatchGetItem bidang
<a name="js-BatchGetItem-list"></a>

### BatchGetItem daftar bidang
<a name="js-BatchGetItem-list-col"></a>

** `operation` **  
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi `BatchGetItem` DynamoDB, ini harus diatur 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. `tables`Nilai 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 sortir, tergantung pada struktur tabel. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Mengetik [sistem (pemetaan permintaan)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request).  
** `consistentRead` **  
Apakah akan menggunakan pembacaan yang konsisten saat menjalankan *GetItem*operasi. *Nilai ini opsional dan default ke false.*  
**`projection`**  
Proyeksi yang digunakan untuk menentukan atribut yang akan dikembalikan dari operasi DynamoDB. Untuk informasi selengkapnya tentang proyeksi, lihat [Proyeksi](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-projections). Bidang ini bersifat 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 objek permintaan.
+ Setiap `Get` perintah di dalam a `BatchGetItem` 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.*
+  `BatchGetItem`terbatas pada 100 kunci.

Untuk contoh berikut fungsi request handler:

```
import { util } from '@aws-appsync/utils';

export function request(ctx) {
  const { authorId, postId } = ctx.args;
  return {
    operation: 'BatchGetItem',
    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 retrieved
        {
          "authorId": "a1",
          "postId": "p2",
          "postTitle": "title",
          "postDescription": "description",
        }
     ]
   },
   "unprocessedKeys": {
     "authors": [
        // This item was not processed due to an error
        {
          "authorId": "a1"
        }
      ],
     "posts": []
   }
}
```

`ctx.error`Berisi rincian tentang kesalahan. **Data** kunci, **UnprocessedKeys**, dan setiap tombol tabel yang disediakan dalam hasil dalam objek permintaan fungsi 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 **UnprocessedKeys**.