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