Pembantu DynamoDB di $util.dynamodb - AWS AppSync

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

Pembantu DynamoDB di $util.dynamodb

catatan

Kami sekarang terutama mendukung runtime APPSYNC _JS dan dokumentasinya. Harap pertimbangkan untuk menggunakan runtime APPSYNC _JS dan panduannya di sini.

$util.dynamodbberisi metode pembantu yang memudahkan untuk menulis dan membaca data ke Amazon DynamoDB, seperti pemetaan dan pemformatan tipe otomatis. Metode ini dirancang untuk membuat pemetaan tipe primitif dan Daftar ke format input DynamoDB yang tepat secara otomatis, yang merupakan format. Map { "TYPE" : VALUE }

Misalnya, sebelumnya, template pemetaan permintaan untuk membuat item baru di DynamoDB mungkin terlihat seperti ini:

{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "id" : { "S" : "$util.autoId()" } }, "attributeValues" : { "title" : { "S" : $util.toJson($ctx.args.title) }, "author" : { "S" : $util.toJson($ctx.args.author) }, "version" : { "N", $util.toJson($ctx.args.version) } } }

Jika kita ingin menambahkan bidang ke objek, kita harus memperbarui kueri GraphQL dalam skema, serta template pemetaan permintaan. Namun, kami sekarang dapat merestrukturisasi template pemetaan permintaan kami sehingga secara otomatis mengambil bidang baru yang ditambahkan dalam skema kami dan menambahkannya ke DynamoDB dengan tipe yang benar:

{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "id" : $util.dynamodb.toDynamoDBJson($util.autoId()) }, "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args) }

Pada contoh sebelumnya, kita menggunakan $util.dynamodb.toDynamoDBJson(...) helper untuk secara otomatis mengambil id yang dihasilkan dan mengubahnya menjadi representasi DynamoDB dari atribut string. Kami kemudian mengambil semua argumen dan mengonversinya ke representasi DynamoDB mereka dan mengeluarkannya ke bidang attributeValues di template.

Setiap helper memiliki dua versi: versi yang mengembalikan objek (misalnya,$util.dynamodb.toString(...)), dan versi yang mengembalikan objek sebagai JSON string (misalnya,$util.dynamodb.toStringJson(...)). Pada contoh sebelumnya, kami menggunakan versi yang mengembalikan data sebagai JSON string. Jika Anda ingin memanipulasi objek sebelum digunakan dalam template, Anda dapat memilih untuk mengembalikan objek sebagai gantinya, seperti yang ditunjukkan berikut:

{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "id" : $util.dynamodb.toDynamoDBJson($util.autoId()) }, #set( $myFoo = $util.dynamodb.toMapValues($ctx.args) ) #set( $myFoo.version = $util.dynamodb.toNumber(1) ) #set( $myFoo.timestamp = $util.dynamodb.toString($util.time.nowISO8601())) "attributeValues" : $util.toJson($myFoo) }

Pada contoh sebelumnya, kita mengembalikan argumen yang dikonversi sebagai peta alih-alih JSON string, dan kemudian menambahkan timestamp bidang version dan sebelum akhirnya mengeluarkannya ke attributeValues bidang dalam template menggunakan$util.toJson(...).

JSONVersi masing-masing pembantu setara dengan membungkus JSON versi non dalam. $util.toJson(...) Misalnya, pernyataan berikut persis sama:

$util.toStringJson("Hello, World!") $util.toJson($util.toString("Hello, World!"))

toDynamoDB

$util.dynamodb.toDynamoDB(Object) : Map

Alat konversi objek umum untuk DynamoDB yang mengubah objek masukan ke representasi DynamoDB yang sesuai. Ini berpendirian tentang bagaimana itu mewakili beberapa jenis: misalnya, itu akan menggunakan daftar (“L”) daripada set (“SS”, “NS”, “BS”). Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Contoh string

Input: $util.dynamodb.toDynamoDB("foo") Output: { "S" : "foo" }

Contoh angka

Input: $util.dynamodb.toDynamoDB(12345) Output: { "N" : 12345 }

Contoh Boolean

Input: $util.dynamodb.toDynamoDB(true) Output: { "BOOL" : true }

Daftar contoh

Input: $util.dynamodb.toDynamoDB([ "foo", 123, { "bar" : "baz" } ]) Output: { "L" : [ { "S" : "foo" }, { "N" : 123 }, { "M" : { "bar" : { "S" : "baz" } } } ] }

Contoh peta

Input: $util.dynamodb.toDynamoDB({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] }) Output: { "M" : { "foo" : { "S" : "bar" }, "baz" : { "N" : 1234 }, "beep" : { "L" : [ { "S" : "boop" } ] } } }
$util.dynamodb.toDynamoDBJson(Object) : String

Sama seperti$util.dynamodb.toDynamoDB(Object) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toString utils

$util.dynamodb.toString(String) : String

Mengkonversi string input ke format string DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toString("foo") Output: { "S" : "foo" }
$util.dynamodb.toStringJson(String) : Map

Sama seperti$util.dynamodb.toString(String) : String, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.toStringSet(List<String>) : Map

Mengkonversi daftar dengan Strings ke format set string DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toStringSet([ "foo", "bar", "baz" ]) Output: { "SS" : [ "foo", "bar", "baz" ] }
$util.dynamodb.toStringSetJson(List<String>) : String

Sama seperti$util.dynamodb.toStringSet(List<String>) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toNumber utils

$util.dynamodb.toNumber(Number) : Map

Mengkonversi angka ke format nomor DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toNumber(12345) Output: { "N" : 12345 }
$util.dynamodb.toNumberJson(Number) : String

Sama seperti$util.dynamodb.toNumber(Number) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.toNumberSet(List<Number>) : Map

Mengkonversi daftar angka ke format set nomor DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toNumberSet([ 1, 23, 4.56 ]) Output: { "NS" : [ 1, 23, 4.56 ] }
$util.dynamodb.toNumberSetJson(List<Number>) : String

Sama seperti$util.dynamodb.toNumberSet(List<Number>) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toBinary utils

$util.dynamodb.toBinary(String) : Map

Mengkonversi data biner dikodekan sebagai string base64 ke format biner DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toBinary("foo") Output: { "B" : "foo" }
$util.dynamodb.toBinaryJson(String) : String

Sama seperti$util.dynamodb.toBinary(String) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.toBinarySet(List<String>) : Map

Mengkonversi daftar data biner yang dikodekan sebagai string base64 ke format set biner DynamoDB. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toBinarySet([ "foo", "bar", "baz" ]) Output: { "BS" : [ "foo", "bar", "baz" ] }
$util.dynamodb.toBinarySetJson(List<String>) : String

Sama seperti$util.dynamodb.toBinarySet(List<String>) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toBoolean utils

$util.dynamodb.toBoolean(Boolean) : Map

Mengkonversi Boolean ke format DynamoDB Boolean yang sesuai. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toBoolean(true) Output: { "BOOL" : true }
$util.dynamodb.toBooleanJson(Boolean) : String

Sama seperti$util.dynamodb.toBoolean(Boolean) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toNull utils

$util.dynamodb.toNull() : Map

Mengembalikan null dalam format DynamoDB null. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toNull() Output: { "NULL" : null }
$util.dynamodb.toNullJson() : String

Sama seperti$util.dynamodb.toNull() : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toList utils

$util.dynamodb.toList(List) : Map

Mengkonversi daftar objek ke format daftar DynamoDB. Setiap item dalam daftar juga dikonversi ke format DynamoDB yang sesuai. Ini berpendapat tentang bagaimana itu mewakili beberapa objek bersarang: misalnya, itu akan menggunakan daftar (“L”) daripada set (“SS”, “NS”, “BS”). Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toList([ "foo", 123, { "bar" : "baz" } ]) Output: { "L" : [ { "S" : "foo" }, { "N" : 123 }, { "M" : { "bar" : { "S" : "baz" } } } ] }
$util.dynamodb.toListJson(List) : String

Sama seperti$util.dynamodb.toList(List) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

toMap utils

$util.dynamodb.toMap(Map) : Map

Mengkonversi peta ke format peta DynamoDB. Setiap nilai dalam peta juga dikonversi ke format DynamoDB yang sesuai. Ini berpendapat tentang bagaimana itu mewakili beberapa objek bersarang: misalnya, itu akan menggunakan daftar (“L”) daripada set (“SS”, “NS”, “BS”). Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toMap({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] }) Output: { "M" : { "foo" : { "S" : "bar" }, "baz" : { "N" : 1234 }, "beep" : { "L" : [ { "S" : "boop" } ] } } }
$util.dynamodb.toMapJson(Map) : String

Sama seperti$util.dynamodb.toMap(Map) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.toMapValues(Map) : Map

Membuat salinan peta di mana setiap nilai telah dikonversi ke format DynamoDB yang sesuai. Ini berpendapat tentang bagaimana itu mewakili beberapa objek bersarang: misalnya, itu akan menggunakan daftar (“L”) daripada set (“SS”, “NS”, “BS”).

Input: $util.dynamodb.toMapValues({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] }) Output: { "foo" : { "S" : "bar" }, "baz" : { "N" : 1234 }, "beep" : { "L" : [ { "S" : "boop" } ] } }
catatan

Ini sedikit berbeda $util.dynamodb.toMap(Map) : Map karena hanya mengembalikan isi dari nilai atribut DynamoDB, tetapi tidak seluruh nilai atribut itu sendiri. Misalnya, pernyataan berikut persis sama:

$util.dynamodb.toMapValues($map) $util.dynamodb.toMap($map).get("M")
$util.dynamodb.toMapValuesJson(Map) : String

Sama seperti$util.dynamodb.toMapValues(Map) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

S3Object utilitas

$util.dynamodb.toS3Object(String key, String bucket, String region) : Map

Mengonversi kunci, bucket, dan wilayah menjadi representasi DynamoDB S3 Object. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toS3Object("foo", "bar", region = "baz") Output: { "S" : "{ \"s3\" : { \"key\" : \"foo", \"bucket\" : \"bar", \"region\" : \"baz" } }" }
$util.dynamodb.toS3ObjectJson(String key, String bucket, String region) : String

Sama seperti$util.dynamodb.toS3Object(String key, String bucket, String region) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map

Mengonversi kunci, bucket, region, dan versi opsional menjadi representasi DynamoDB S3 Object. Ini mengembalikan sebuah objek yang menggambarkan nilai atribut DynamoDB.

Input: $util.dynamodb.toS3Object("foo", "bar", "baz", "beep") Output: { "S" : "{ \"s3\" : { \"key\" : \"foo\", \"bucket\" : \"bar\", \"region\" : \"baz\", \"version\" = \"beep\" } }" }
$util.dynamodb.toS3ObjectJson(String key, String bucket, String region, String version) : String

Sama seperti$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map, tetapi mengembalikan nilai atribut DynamoDB sebagai JSON string dikodekan.

$util.dynamodb.fromS3ObjectJson(String) : Map

Menerima nilai string Objek DynamoDB S3 dan mengembalikan peta yang berisi kunci, bucket, wilayah, dan versi opsional.

Input: $util.dynamodb.fromS3ObjectJson({ "S" : "{ \"s3\" : { \"key\" : \"foo\", \"bucket\" : \"bar\", \"region\" : \"baz\", \"version\" = \"beep\" } }" }) Output: { "key" : "foo", "bucket" : "bar", "region" : "baz", "version" : "beep" }