Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
PutItem
Dokumen pemetaan PutItem
permintaan memungkinkan Anda memberi tahu AWS AppSync DynamoDB resolver untuk membuat PutItem
permintaan ke DynamoDB, dan memungkinkan Anda untuk menentukan hal berikut:
-
Kunci item di DynamoDB
-
Isi lengkap item (terdiri dari
key
danattributeValues
) -
Kondisi agar operasi berhasil
Dokumen PutItem
pemetaan memiliki struktur sebagai berikut:
{ "version" : "2018-05-29", "operation" : "PutItem", "customPartitionKey" : "foo", "populateIndexFields" : boolean value, "key": { "foo" : ... typed value, "bar" : ... typed value }, "attributeValues" : { "baz" : ... typed value }, "condition" : { ... }, "_version" : 1 }
Bidang didefinisikan sebagai berikut:
PutItem bidang
-
version
-
Versi definisi template.
2017-02-28
dan2018-05-29
saat ini didukung. Nilai ini diperlukan. -
operation
-
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi
PutItem
DynamoDB, ini harus diatur ke.PutItem
Nilai ini diperlukan. -
key
-
Kunci item di DynamoDB. 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). Nilai ini diperlukan.
-
attributeValues
-
Sisa atribut item yang akan dimasukkan ke dalam DynamoDB. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Mengetik sistem (pemetaan permintaan). Bidang ini bersifat opsional.
-
condition
-
Suatu kondisi untuk menentukan apakah permintaan harus berhasil atau tidak, berdasarkan status objek yang sudah ada di DynamoDB. Jika tidak ada kondisi yang ditentukan,
PutItem
permintaan akan menimpa entri yang ada untuk item tersebut. Untuk informasi selengkapnya tentang kondisi, lihat Ekspresi kondisi. Nilai ini bersifat opsional. -
_version
-
Nilai numerik yang mewakili versi item terbaru yang diketahui. Nilai ini bersifat opsional. Bidang ini digunakan untuk Deteksi Konflik dan hanya didukung pada sumber data berversi.
customPartitionKey
-
Saat diaktifkan, nilai string ini mengubah format
ds_sk
dands_pk
catatan yang digunakan oleh tabel sinkronisasi delta saat pembuatan versi telah diaktifkan (untuk informasi selengkapnya, lihat Deteksi konflik dan sinkronisasi di Panduan Pengembang AWS AppSync ). Saat diaktifkan, pemrosesanpopulateIndexFields
entri juga diaktifkan. Bidang ini bersifat opsional. populateIndexFields
-
Nilai boolean yang, ketika diaktifkan bersama dengan
customPartitionKey
, membuat entri baru untuk setiap catatan dalam tabel sinkronisasi delta, khususnya di kolom dangsi_ds_pk
.gsi_ds_sk
Untuk informasi selengkapnya, lihat Deteksi dan sinkronisasi konflik di Panduan AWS AppSync Pengembang. Bidang ini bersifat opsional.
Item yang ditulis ke DynamoDB secara otomatis diubah menjadi GraphQL dan tipe primitif JSON dan tersedia dalam konteks pemetaan (). $context.result
Untuk informasi selengkapnya tentang konversi tipe DynamoDB, lihat Mengetik sistem (pemetaan respons).
Untuk informasi selengkapnya tentang template pemetaan respons, lihat Ringkasan template pemetaan Resolver.
Contoh 1
Contoh berikut adalah template pemetaan untuk mutasi GraphQL. updateThing(foo: String!,
bar: String!, name: String!, version: Int!)
Jika tidak ada item dengan kunci yang ditentukan, itu dibuat. Jika item sudah ada dengan kunci yang ditentukan, itu akan ditimpa.
{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "foo" : $util.dynamodb.toDynamoDBJson($ctx.args.foo), "bar" : $util.dynamodb.toDynamoDBJson($ctx.args.bar) }, "attributeValues" : { "name" : $util.dynamodb.toDynamoDBJson($ctx.args.name), "version" : $util.dynamodb.toDynamoDBJson($ctx.args.version) } }
Contoh 2
Contoh berikut adalah template pemetaan untuk mutasi GraphQL. updateThing(foo: String!, bar: String!, name: String!,
expectedVersion: Int!)
Contoh ini memeriksa untuk memastikan item yang saat ini di DynamoDB memiliki bidang yang disetel version
ke. expectedVersion
{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "foo" : $util.dynamodb.toDynamoDBJson($ctx.args.foo), "bar" : $util.dynamodb.toDynamoDBJson($ctx.args.bar) }, "attributeValues" : { "name" : $util.dynamodb.toDynamoDBJson($ctx.args.name), #set( $newVersion = $context.arguments.expectedVersion + 1 ) "version" : $util.dynamodb.toDynamoDBJson($newVersion) }, "condition" : { "expression" : "version = :expectedVersion", "expressionValues" : { ":expectedVersion" : $util.dynamodb.toDynamoDBJson($expectedVersion) } } }
Untuk informasi selengkapnya tentang DynamoDB, lihat PutItem
API dokumentasi DynamoDB. API