

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

# BatchPutItem
<a name="aws-appsync-resolver-mapping-template-reference-dynamodb-batch-put-item"></a>

Dokumen pemetaan `BatchPutItem` permintaan memungkinkan Anda memberi tahu AWS AppSync DynamoDB resolver untuk membuat `BatchWriteItem` permintaan ke DynamoDB untuk menempatkan beberapa item, berpotensi di beberapa tabel. Untuk template permintaan ini, Anda harus menentukan yang berikut:
+ Nama tabel tempat meletakkan item
+ Item lengkap untuk dimasukkan ke dalam setiap tabel

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

Dokumen `BatchPutItem` pemetaan memiliki struktur sebagai berikut:

```
{
    "version" : "2018-05-29",
    "operation" : "BatchPutItem",
    "tables" : {
        "table1": [
        ## Item to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item2 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
        "table2": [
        ## Item3 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        },
        ## Item4 to put
        {
             "foo" : ... typed value,
             "bar" : ... typed value
        }],
    }
}
```

Bidang didefinisikan sebagai berikut:

## BatchPutItem bidang
<a name="BatchPutItem-list"></a>

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

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

** `operation` **  
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi `BatchPutItem` DynamoDB, ini harus diatur ke. `BatchPutItem` Nilai ini diperlukan.

** `tables` **  
Tabel DynamoDB untuk menempatkan item di. Setiap entri tabel mewakili daftar item DynamoDB untuk disisipkan untuk tabel khusus ini. Setidaknya satu meja harus disediakan. Nilai ini diperlukan.

Hal-hal yang perlu diingat:
+ Item yang disisipkan sepenuhnya dikembalikan dalam respons, jika berhasil.
+ Jika item belum dimasukkan dalam tabel, elemen *null* ditampilkan di blok data untuk tabel tersebut.
+ Item yang disisipkan diurutkan per tabel, berdasarkan urutan penyediaannya di dalam templat pemetaan permintaan.
+ Setiap `Put` perintah di dalam a `BatchPutItem` 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.*
+  `BatchPutItem`terbatas pada 25 item.
+ Operasi **ini tidak** didukung saat digunakan dengan deteksi konflik. Menggunakan keduanya secara bersamaan dapat mengakibatkan kesalahan.

Untuk contoh template pemetaan permintaan berikut:

```
{
  "version": "2018-05-29",
  "operation": "BatchPutItem",
  "tables": {
    "authors": [
        {
          "author_id": {
            "S": "a1"
          },
          "author_name": {
            "S": "a1_name"
          }
        },
    ],
    "posts": [
        {
          "author_id": {
            "S": "a1"
          },
          "post_id": {
            "S": "p2"
          },
          "post_title": {
            "S": "title"
          }
        }
    ],
  }
}
```

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

```
{
   "data": {
     "authors": [
         null
     ],
     "posts": [
        # Was inserted
        {
          "author_id": "a1",
          "post_id": "p2",
          "post_title": "title"
        }
     ]
   },
   "unprocessedItems": {
     "authors": [
        # This item was not processed due to an error
        {
          "author_id": "a1",
          "author_name": "a1_name"
        }
      ],
     "posts": []
   }
}
```

`$ctx.error`Berisi rincian tentang kesalahan. **Data** kunci, **UnprocessEditems**, dan setiap kunci tabel yang disediakan dalam template pemetaan permintaan dijamin akan hadir dalam hasil pemanggilan. Item yang telah dimasukkan ada di blok **data**. Item yang belum diproses ditandai sebagai *null* di dalam blok data dan ditempatkan di dalam blok **UnProcessEditems**.

Untuk contoh yang lebih lengkap, ikuti tutorial DynamoDB Batch [dengan di sini AppSync Tutorial: DynamoDB](tutorial-dynamodb-batch.md#aws-appsync-tutorial-dynamodb-batch) batch resolvers.