Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jenis sistem (pemetaan permintaan)
Saat menggunakan fungsi AWS AppSync DynamoDB untuk memanggil tabel DynamoDB Anda AWS AppSync , perlu mengetahui jenis setiap nilai yang akan digunakan dalam panggilan itu. Ini karena DynamoDB mendukung lebih banyak tipe primitif daripada GraphQL JSON atau (seperti set dan data biner). AWS AppSync membutuhkan beberapa petunjuk saat menerjemahkan antara GraphQL dan DynamoDB, jika tidak maka harus membuat beberapa asumsi tentang bagaimana data disusun dalam tabel Anda.
Untuk informasi selengkapnya tentang tipe data DynamoDB, lihat deskriptor tipe Data DynamoDB dan dokumentasi tipe data.
Nilai DynamoDB diwakili oleh objek yang berisi pasangan JSON kunci-nilai tunggal. Kunci menentukan jenis DynamoDB, dan nilai menentukan nilai itu sendiri. Dalam contoh berikut, kunci S
menunjukkan bahwa nilainya adalah string, dan nilainya identifier
adalah nilai string itu sendiri.
{ "S" : "identifier" }
Perhatikan bahwa JSON objek tidak dapat memiliki lebih dari satu pasangan kunci-nilai. Jika lebih dari satu pasangan kunci-nilai ditentukan, objek permintaan tidak diuraikan.
Nilai DynamoDB digunakan di mana saja dalam objek permintaan di mana Anda perlu menentukan nilai. Beberapa tempat di mana Anda perlu melakukan ini termasuk: key
dan attributeValue
bagian, dan expressionValues
bagian dari bagian ekspresi. Dalam contoh berikut, identifier
nilai DynamoDB String sedang ditetapkan ke bidang id
di bagian (mungkin dalam key
GetItem
objek permintaan).
"key" : { "id" : { "S" : "identifier" } }
Tipe yang Didukung
AWS AppSync mendukung skalar DynamoDB, dokumen, dan jenis set berikut:
- Jenis string
S
-
Nilai string tunggal. Nilai DynamoDB String dilambangkan dengan:
{ "S" : "some string" }
Contoh penggunaan adalah:
"key" : { "id" : { "S" : "some string" } }
- Jenis set string
SS
-
Satu set nilai string. Nilai DynamoDB String Set dilambangkan dengan:
{ "SS" : [ "first value", "second value", ... ] }
Contoh penggunaan adalah:
"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
- Jenis nomor
N
-
Nilai numerik tunggal. Nilai Nomor DynamoDB dilambangkan dengan:
{ "N" : 1234 }
Contoh penggunaan adalah:
"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
- Jenis set nomor
NS
-
Satu set nilai angka. Nilai DynamoDB Number Set dilambangkan dengan:
{ "NS" : [ 1, 2.3, 4 ... ] }
Contoh penggunaan adalah:
"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
- Tipe biner
B
-
Nilai biner. Nilai biner DynamoDB dilambangkan dengan:
{ "B" : "SGVsbG8sIFdvcmxkIQo=" }
Perhatikan bahwa nilainya sebenarnya adalah string, di mana string adalah representasi yang dikodekan base64 dari data biner. AWS AppSync mendekode string ini kembali ke nilai binernya sebelum mengirimnya ke DynamoDB. AWS AppSync menggunakan skema decoding base64 seperti yang didefinisikan oleh RFC 2045: karakter apa pun yang tidak ada dalam alfabet base64 diabaikan.
Contoh penggunaan adalah:
"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
- Jenis set biner
BS
-
Satu set nilai biner. Nilai DynamoDB Binary Set dilambangkan dengan:
{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }
Perhatikan bahwa nilainya sebenarnya adalah string, di mana string adalah representasi yang dikodekan base64 dari data biner. AWS AppSync mendekode string ini kembali ke nilai binernya sebelum mengirimnya ke DynamoDB. AWS AppSync menggunakan skema decoding base64 seperti yang didefinisikan oleh RFC 2045: karakter apa pun yang tidak ada dalam alfabet base64 diabaikan.
Contoh penggunaan adalah:
"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
- Jenis Boolean
BOOL
-
Nilai Boolean. Nilai DynamoDB Boolean dilambangkan dengan:
{ "BOOL" : true }
Perhatikan bahwa hanya
true
danfalse
merupakan nilai yang valid.Contoh penggunaan adalah:
"attributeValues" : { "orderComplete" : { "BOOL" : false } }
- Jenis daftar
L
-
Daftar nilai DynamoDB lain yang didukung. Nilai Daftar DynamoDB dilambangkan dengan:
{ "L" : [ ... ] }
Perhatikan bahwa nilainya adalah nilai gabungan, di mana daftar dapat berisi nol atau lebih dari nilai DynamoDB yang didukung (termasuk daftar lainnya). Daftar ini juga dapat berisi campuran berbagai jenis.
Contoh penggunaan adalah:
{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
- Jenis peta
M
-
Mewakili kumpulan pasangan kunci-nilai yang tidak berurutan dari nilai DynamoDB lain yang didukung. Nilai DynamoDB Map dilambangkan dengan:
{ "M" : { ... } }
Perhatikan bahwa peta dapat berisi nol atau lebih pasangan nilai kunci. Kuncinya harus berupa string, dan nilainya dapat berupa nilai DynamoDB yang didukung (termasuk peta lainnya). Peta juga dapat berisi campuran dari berbagai jenis.
Contoh penggunaan adalah:
{ "M" : { "someString" : { "S" : "A string value" }, "someNumber" : { "N" : 1 }, "stringSet" : { "SS" : [ "Another string value", "Even more string values!" ] } } }
- Jenis nol
NULL
-
Nilai nol. Nilai DynamoDB Null dilambangkan dengan:
{ "NULL" : null }
Contoh penggunaan adalah:
"attributeValues" : { "phoneNumbers" : { "NULL" : null } }
Untuk informasi selengkapnya tentang setiap jenis, lihat dokumentasi DynamoDB.