Aplicaciones auxiliares de DynamoDB en $util.dynamodb - AWS AppSync

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aplicaciones auxiliares de DynamoDB en $util.dynamodb

nota

Ahora admitimos principalmente el motor de ejecución APPSYNC _JS y su documentación. Considere la posibilidad de utilizar el motor de ejecución APPSYNC _JS y sus guías aquí.

$util.dynamodb contiene métodos auxiliares que facilitan la escritura y la lectura de datos en Amazon DynamoDB, como el mapeo y el formato automáticos de los tipos de datos. Estos métodos están diseñados para mapear automáticamente los tipos primitivos y las listas al formato de entrada de DynamoDB correspondiente, creando una estructura Map con el formato { "TYPE" : VALUE }.

Por ejemplo, anteriormente, una plantilla de mapeo de solicitudes para crear un elemento nuevo en DynamoDB podía tener el siguiente aspecto:

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

Si queríamos añadir campos al objeto teníamos que actualizar la consulta de GraphQL en el esquema, y también la plantilla de mapeo de solicitud. Sin embargo, ahora podemos reestructurar nuestra plantilla de mapeo de solicitudes para que recoja automáticamente los nuevos campos de nuestro esquema y los añada a DynamoDB con los tipos correctos:

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

En el ejemplo anterior utilizamos la aplicación auxiliar $util.dynamodb.toDynamoDBJson(...) para que tome automáticamente el ID generado y lo convierta en la representación en DynamoDB de un atributo de cadena. A continuación, tomamos todos los argumentos, los convertimos en sus representaciones en DynamoDB y los incluimos en el campo attributeValues de la plantilla.

Cada asistente tiene dos versiones: una versión que devuelve un objeto (por ejemplo,$util.dynamodb.toString(...)) y una versión que devuelve el objeto como una JSON cadena (por ejemplo,$util.dynamodb.toStringJson(...)). En el ejemplo anterior, utilizamos la versión que devuelve los datos en forma de JSON cadena. Si desea manipular el objeto antes de usarlo en la plantilla, puede elegir que se devuelva en un objeto en su lugar, como se muestra a continuación:

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

En el ejemplo anterior, devolvemos los argumentos convertidos como un mapa en lugar de una JSON cadena y, a continuación, agregamos timestamp los campos version y antes de convertirlos finalmente en el attributeValues campo de la plantilla que se utiliza$util.toJson(...).

La JSON versión de cada uno de los ayudantes equivale a incluir la JSON versión no existente. $util.toJson(...) Por ejemplo, las siguientes instrucciones son exactamente lo mismo:

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

toDynamoDB

$util.dynamodb.toDynamoDB(Object) : Map

Herramienta de conversión general de objetos para DynamoDB que convierte objetos de entrada en la representación de DynamoDB correspondiente. Es algo inflexible en cuanto al modo en que representa algunos tipos: por ejemplo, utiliza listas ("L") en lugar de conjuntos ("SS", "NS" "BS"). Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

Ejemplo de cadena

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

Ejemplo de número

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

Ejemplo de booleano

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

Ejemplo de lista

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

Ejemplo de mapa

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

Igual que$util.dynamodb.toDynamoDB(Object) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toString utilidades

$util.dynamodb.toString(String) : String

Convierte una cadena de entrada al formato de cadena de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toString(String) : String, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

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

Convierte una lista con cadenas al formato de conjunto de cadenas de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toStringSet(List<String>) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toNumber utilidades

$util.dynamodb.toNumber(Number) : Map

Convierte un número al formato de número de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toNumber(Number) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

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

Convierte una lista de números al formato de conjunto de números de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toNumberSet(List<Number>) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toBinary utilidades

$util.dynamodb.toBinary(String) : Map

Convierte datos binarios codificados como una cadena en base64 al formato binario de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toBinary(String) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

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

Convierte una lista de datos binarios codificados como cadenas en base64 al formato de conjunto binario de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toBinarySet(List<String>) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toBoolean utilidades

$util.dynamodb.toBoolean(Boolean) : Map

Convierte un valor booleano al formato booleano correspondiente de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toBoolean(Boolean) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toNull utilidades

$util.dynamodb.toNull() : Map

Devuelve un valor nulo con el formato nulo de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toNull() : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toList utilidades

$util.dynamodb.toList(List) : Map

Convierte una lista de objetos al formato de lista de DynamoDB. Cada elemento de la lista se convierte también al formato correspondiente de DynamoDB. Es algo inflexible en cuanto al modo en que representa algunos objetos anidados: por ejemplo, utiliza listas ("L") en lugar de conjuntos ("SS", "NS" "BS"). Esto devuelve un objeto que describe el valor del atributo de DynamoDB.

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

Igual que$util.dynamodb.toList(List) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

toMap utilidades

$util.dynamodb.toMap(Map) : Map

Convierte un mapa al formato de mapa de DynamoDB. Cada valor del mapa se convierte también al formato de DynamoDB correspondiente. Es algo inflexible en cuanto al modo en que representa algunos objetos anidados: por ejemplo, utiliza listas ("L") en lugar de conjuntos ("SS", "NS" "BS"). Esto devuelve un objeto que describe el valor del atributo de 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

Igual que$util.dynamodb.toMap(Map) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

$util.dynamodb.toMapValues(Map) : Map

Crea una copia del mapa en la que cada valor se convierte al formato correspondiente de DynamoDB. Es algo inflexible en cuanto al modo en que representa algunos objetos anidados: por ejemplo, utiliza listas ("L") en lugar de conjuntos ("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

Esto es ligeramente diferente de $util.dynamodb.toMap(Map) : Map, ya que solo devuelve el contenido del valor de atributo de DynamoDB y no todo el valor de atributo en sí. Por ejemplo, las siguientes instrucciones son exactamente lo mismo:

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

Igual que$util.dynamodb.toMapValues(Map) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

Utilidades S3Object

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

Convierte la clave, el bucket y la región a la representación de objeto de S3 de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de 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

Igual que$util.dynamodb.toS3Object(String key, String bucket, String region) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

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

Convierte la clave, el bucket, la región y la versión opcional a la representación de objeto de S3 de DynamoDB. Esto devuelve un objeto que describe el valor del atributo de 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

Igual que$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map, pero devuelve el valor del atributo de DynamoDB en forma de cadena codificadaJSON.

$util.dynamodb.fromS3ObjectJson(String) : Map

Acepta el valor de cadena de un objeto de S3 de DynamoDB y devuelve un mapa que contiene la clave, el bucket, la región y la versión opcional.

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