Helper DynamoDB in $util.dynamodb - AWS AppSync

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Helper DynamoDB in $util.dynamodb

Nota

Ora supportiamo principalmente il runtime APPSYNC _JS e la relativa documentazione. Valuta la possibilità di utilizzare il runtime APPSYNC _JS e le relative guide qui.

$util.dynamodbcontiene metodi di supporto che semplificano la scrittura e la lettura dei dati su Amazon DynamoDB, come la mappatura e la formattazione automatiche dei tipi. Questi metodi sono progettati per mappare automaticamente i tipi e gli elenchi primitivi nel formato di input DynamoDB corretto, che è uno dei formati. Map { "TYPE" : VALUE }

Ad esempio, in precedenza, un modello di mappatura delle richieste per creare un nuovo elemento in DynamoDB avrebbe potuto avere il seguente aspetto:

{ "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) } } }

Per aggiungere campi all'oggetto sarebbe stato necessario aggiornare la query GraphQL nello schema, nonché il modello di mappatura della richiesta. Tuttavia, ora possiamo ristrutturare il nostro modello di mappatura delle richieste in modo che raccolga automaticamente i nuovi campi aggiunti nel nostro schema e li aggiunga a DynamoDB con i tipi corretti:

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

Nell'esempio precedente, utilizziamo l'$util.dynamodb.toDynamoDBJson(...)helper per prendere automaticamente l'id generato e convertirlo nella rappresentazione DynamoDB di un attributo stringa. Quindi prendiamo tutti gli argomenti e li convertiamo nelle loro rappresentazioni DynamoDB e li inviamo nel campo attributeValues del modello.

Ogni helper ha due versioni: una versione che restituisce un oggetto (ad esempio,$util.dynamodb.toString(...)) e una versione che restituisce l'oggetto come JSON stringa (ad esempio,). $util.dynamodb.toStringJson(...) Nell'esempio precedente, abbiamo utilizzato la versione che restituisce i dati come JSON stringa. Se vuoi modificare l'oggetto prima che venga usato nel modello, puoi scegliere di restituire invece un oggetto, come illustrato di seguito:

{ "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) }

Nell'esempio precedente, restituiamo gli argomenti convertiti come mappa anziché come JSON stringa, quindi aggiungiamo i timestamp campi version and prima di inviarli definitivamente al attributeValues campo nel modello che utilizza$util.toJson(...).

La JSON versione di ciascuno degli helper equivale a inserire la versione non esistente. JSON $util.toJson(...) Ad esempio, le istruzioni seguenti sono identiche:

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

toDynamoDB

$util.dynamodb.toDynamoDB(Object) : Map

Strumento generale di conversione degli oggetti per DynamoDB che converte gli oggetti di input nella rappresentazione DynamoDB appropriata. Rappresenta alcuni tipi in un determinato modo. Ad esempio, usa elenchi ("L") invece di set ("SS", "NS", "BS"). Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

Esempio di stringa

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

Esempio di numero

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

Esempio booleano

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

Esempio di elenco

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

Esempio di mappa

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

Uguale a$util.dynamodb.toDynamoDB(Object) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toString utilità

$util.dynamodb.toString(String) : String

Converte una stringa di input nel formato stringa DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toString(String) : String, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

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

Converte un elenco con stringhe nel formato del set di stringhe DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toStringSet(List<String>) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toNumber utilità

$util.dynamodb.toNumber(Number) : Map

Converte un numero nel formato numerico DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toNumber(Number) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

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

Converte un elenco di numeri nel formato del set di numeri DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toNumberSet(List<Number>) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toBinary utilità

$util.dynamodb.toBinary(String) : Map

Converte i dati binari codificati come stringa base64 in formato binario DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toBinary(String) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

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

Converte un elenco di dati binari codificati come stringhe base64 in formato set binario DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toBinarySet(List<String>) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toBoolean utilità

$util.dynamodb.toBoolean(Boolean) : Map

Converte un booleano nel formato booleano DynamoDB appropriato. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toBoolean(Boolean) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toNull utilità

$util.dynamodb.toNull() : Map

Restituisce un valore null nel formato null di DynamoDB. Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toNull() : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toList utilità

$util.dynamodb.toList(List) : Map

Converte un elenco di oggetti nel formato elenco DynamoDB. Ogni elemento dell'elenco viene inoltre convertito nel formato DynamoDB appropriato. Rappresenta alcuni oggetti nidificati in un determinato modo. Ad esempio, usa elenchi ("L") invece di set ("SS", "NS", "BS"). Questo restituisce un oggetto che descrive il valore dell'attributo DynamoDB.

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

Uguale a$util.dynamodb.toList(List) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

toMap utilità

$util.dynamodb.toMap(Map) : Map

Converte una mappa nel formato di mappa DynamoDB. Ogni valore nella mappa viene inoltre convertito nel formato DynamoDB appropriato. Rappresenta alcuni oggetti nidificati in un determinato modo. Ad esempio, usa elenchi ("L") invece di set ("SS", "NS", "BS"). Questo restituisce un oggetto che descrive il valore dell'attributo 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

Uguale a$util.dynamodb.toMap(Map) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

$util.dynamodb.toMapValues(Map) : Map

Crea una copia della mappa in cui ogni valore è stato convertito nel formato DynamoDB appropriato. Rappresenta alcuni oggetti nidificati in un determinato modo. Ad esempio, usa elenchi ("L") invece di 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" } ] } }
Nota

Questo è leggermente diverso dal fatto che restituisce solo il contenuto del valore dell'attributo DynamoDB, ma non l'intero valore dell'attributo $util.dynamodb.toMap(Map) : Map stesso. Ad esempio, le istruzioni seguenti sono identiche:

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

Uguale a$util.dynamodb.toMapValues(Map) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

Utilità S3Object

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

Converte la chiave, il bucket e la regione nella rappresentazione dell'oggetto DynamoDB S3. Questo restituisce un oggetto che descrive il valore dell'attributo 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

Uguale a$util.dynamodb.toS3Object(String key, String bucket, String region) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

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

Converte la chiave, il bucket, la regione e la versione opzionale nella rappresentazione dell'oggetto DynamoDB S3. Questo restituisce un oggetto che descrive il valore dell'attributo 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

Uguale a$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map, ma restituisce il valore dell'attributo DynamoDB come JSON stringa codificata.

$util.dynamodb.fromS3ObjectJson(String) : Map

Accetta il valore stringa di un oggetto DynamoDB S3 e restituisce una mappa che contiene la chiave, il bucket, la regione e la versione opzionale.

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