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 resolver AWS AppSync DynamoDB untuk membuat PutItem permintaan ke DynamoDB, dan memungkinkan Anda untuk menentukan yang berikut:
-
Kunci item di DynamoDB
-
Isi lengkap item (terdiri dari
keydanattributeValues) -
Kondisi agar operasi berhasil
Dok PutItem umen 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-28dan2018-05-29saat ini didukung. Nilai ini diperlukan. -
operation -
Operasi DynamoDB untuk melakukan. Untuk melakukan operasi
PutItemDynamoDB, ini harus disetel ke.PutItemNilai ini diperlukan. -
key -
Kunci item di DynamoDB. Item DynamoDB mungkin memiliki kunci hash tunggal, atau kunci hash dan kunci pengurutan, tergantung pada struktur tabel. Untuk informasi selengkapnya tentang cara menentukan “nilai yang diketik”, lihat Sistem tipe (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 Sistem tipe (pemetaan permintaan). Ini adalah bidang opsional.
-
condition -
Kondisi untuk menentukan apakah permintaan harus berhasil atau tidak, berdasarkan status objek yang sudah ada di DynamoDB. Jika tidak ada kondisi yang ditentukan,
PutItempermintaan akan mengganti entri yang ada untuk item tersebut. Untuk informasi selengkapnya tentang kondisi, lihat Ek spresi kondisi. Nilai ini bersifat opsional. -
_version -
Nilai numerik yang mewakili versi terbaru yang diketahui dari suatu item. Nilai ini bersifat opsional. Bidang ini digunakan untuk Det eksi Konf lik dan hanya didukung pada sumber data berversi.
customPartitionKey-
Saat diaktifkan, nilai string ini mengubah format
ds_skdands_pkcatatan yang digunakan oleh tabel sinkronisasi delta saat pembuatan versi telah diaktifkan (untuk informasi selengkapnya, lihat Deteksi dan sinkronisasi konflik di Panduan Peng AWS AppSync embang). Saat diaktifkan, pemrosesanpopulateIndexFieldsentri juga diaktifkan. Ini adalah bidang opsional. populateIndexFields-
Nilai boolean yang, ketika diaktifkan bersama dengan
customPartitionKey, membuat entri baru untuk setiap catatan dalam tabel sinkronisasi delta, khususnya di kolomgsi_ds_pkdangsi_ds_sk. Untuk informasi selengkapnya, lihat Deteksi dan sinkronisasi konflik di Panduan AWS AppSync Pengembang. Ini adalah bidang opsional.
Item yang ditulis ke DynamoDB secara otomatis diubah menjadi tipe primitif GraphQL dan JSON dan tersedia dalam konteks pemetaan (). $context.result
Untuk informasi selengkapnya tentang konversi tipe DynamoDB, lihat Sistem tipe (pemetaan respons).
Untuk informasi selengkapnya tentang templat pemetaan respons, lihat ikhtisar templ at pemetaan Resolver.
Contoh 1
Contoh berikut adalah template pemetaan untuk mut updateThing(foo: String!, bar: String!, name: String!, version:
Int!) asi GraphQL.
Jika tidak ada item dengan kunci yang ditentukan, itu dibuat. Jika item sudah ada dengan kunci yang ditentukan, itu akan diganti.
{ "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 mut updateThing(foo: String!, bar: String!, name: String!, expectedVersion:
Int!) asi GraphQL.
Contoh ini memeriksa untuk memastikan item yang saat ini ada di DynamoDB memiliki version bidang yang disetel 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 PutItem API, lihat dokumentasi DynamoDB API.