Assistants DynamoDB dans $util.dynamodb - AWS AppSync

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Assistants DynamoDB dans $util.dynamodb

Note

Nous prenons désormais principalement en charge le runtime APPSYNC_JS et sa documentation. Pensez à utiliser le runtime APPSYNC_JS et ses guides ici.

$util.dynamodbcontient des méthodes d'assistance qui facilitent l'écriture et la lecture de données dans Amazon DynamoDB, telles que le mappage automatique des types et le formatage. Ces méthodes sont conçues pour mapper automatiquement les types primitifs et les listes au format d'entrée DynamoDB approprié, qui est Map un des formats. { "TYPE" : VALUE }

Par exemple, auparavant, un modèle de mappage de demandes destiné à créer un nouvel élément dans DynamoDB aurait pu ressembler à ceci :

{ "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 nous voulions ajouter des champs à l'objet, nous devrions mettre à jour la requête GraphQL dans le schéma, ainsi que le modèle de mappage de demande. Cependant, nous pouvons désormais restructurer notre modèle de mappage des demandes afin qu'il récupère automatiquement les nouveaux champs ajoutés dans notre schéma et les ajoute à DynamoDB avec les types appropriés :

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

Dans l'exemple précédent, nous utilisons l'$util.dynamodb.toDynamoDBJson(...)assistant pour prendre automatiquement l'identifiant généré et le convertir en représentation DynamoDB d'un attribut de chaîne. Nous prenons ensuite tous les arguments, les convertissons en leurs représentations DynamoDB et les affichons dans attributeValues le champ du modèle.

Chaque assistant possède deux versions : une version qui renvoie un objet (par exemple, $util.dynamodb.toString(...)) et une version qui renvoie l'objet en tant que chaîne JSON (par exemple, $util.dynamodb.toStringJson(...)). Dans l'exemple précédent, nous avons utilisé la version qui renvoie les données sous la forme d'une chaîne JSON. Si vous souhaitez manipuler l'objet avant qu'il ne soit utilisé dans le modèle, vous pouvez choisir à la place de renvoyer un objet :

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

Dans l'exemple précédent, nous retournons les arguments convertis comme map au lieu d'une chaîne JSON, ajoutons les champs version et timestamp avant de les exporter vers le champ attributeValues du modèle à l'aide de $util.toJson(...).

La version JSON de chacun des assistants est équivalente à l'encapsulage de la version autre que la version JSON dans $util.toJson(...). Par exemple, les instructions suivantes sont exactement identiques :

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

vers DynamoDB

$util.dynamodb.toDynamoDB(Object) : Map

Outil général de conversion d'objets pour DynamoDB qui convertit les objets d'entrée en une représentation DynamoDB appropriée. La façon dont il représente certains types est clairement arrêtée : par exemple, il utilise les listes (« L ») plutôt que les ensembles (« SS », « NS », « BS »). Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

Exemple de chaîne

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

Exemple de numéro

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

Exemple booléen

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

Exemple de liste

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

Exemple de carte

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toDynamoDB(Object) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires ToString

$util.dynamodb.toString(String) : String

Convertit une chaîne d'entrée au format de chaîne DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toString(String) : String, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

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

Convertit une liste contenant des chaînes au format de jeu de chaînes DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toStringSet(List<String>) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utils ToNumber

$util.dynamodb.toNumber(Number) : Map

Convertit un nombre au format numérique DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toNumber(Number) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

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

Convertit une liste de nombres au format d'ensemble de numéros DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toNumberSet(List<Number>) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires ToBinary

$util.dynamodb.toBinary(String) : Map

Convertit les données binaires codées sous forme de chaîne base64 au format binaire DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toBinary(String) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

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

Convertit une liste de données binaires codées sous forme de chaînes base64 au format d'ensemble binaire DynamoDB. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toBinarySet(List<String>) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires ToBoolean

$util.dynamodb.toBoolean(Boolean) : Map

Convertit un booléen au format booléen DynamoDB approprié. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toBoolean(Boolean) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires ToNull

$util.dynamodb.toNull() : Map

Renvoie une valeur nulle au format DynamoDB nul. Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toNull() : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires ToList

$util.dynamodb.toList(List) : Map

Convertit une liste d'objets au format de liste DynamoDB. Chaque élément de la liste est également converti au format DynamoDB approprié. La façon dont il représente certains objets imbriqués est clairement arrêtée : par exemple, il utilise les listes (« L ») plutôt que les ensembles (« SS », « NS », « BS »). Cela renvoie un objet qui décrit la valeur de l'attribut DynamoDB.

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toList(List) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires TomaP

$util.dynamodb.toMap(Map) : Map

Convertit une carte au format de carte DynamoDB. Chaque valeur de la carte est également convertie au format DynamoDB approprié. La façon dont il représente certains objets imbriqués est clairement arrêtée : par exemple, il utilise les listes (« L ») plutôt que les ensembles (« SS », « NS », « BS »). Cela renvoie un objet qui décrit la valeur de l'attribut 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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toMap(Map) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

$util.dynamodb.toMapValues(Map) : Map

Crée une copie de la carte dans laquelle chaque valeur a été convertie au format DynamoDB approprié. La façon dont il représente certains objets imbriqués est clairement arrêtée : par exemple, il utilise les listes (« L ») plutôt que les ensembles (« SS », « NS », « BS »).

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

Cela est légèrement différent $util.dynamodb.toMap(Map) : Map car il renvoie uniquement le contenu de la valeur d'attribut DynamoDB, mais pas la valeur d'attribut complète elle-même. Par exemple, les instructions suivantes sont exactement identiques :

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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toMapValues(Map) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

Utilitaires de l'objet S3

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

Convertit la clé, le compartiment et la région en représentation de l'objet DynamoDB S3. Cela renvoie un objet qui décrit la valeur de l'attribut 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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toS3Object(String key, String bucket, String region) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

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

Convertit la clé, le compartiment, la région et la version facultative en représentation de l'objet DynamoDB S3. Cela renvoie un objet qui décrit la valeur de l'attribut 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

Identique à la valeur de l'attribut DynamoDB$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map, mais renvoie la valeur de l'attribut DynamoDB sous forme de chaîne codée JSON.

$util.dynamodb.fromS3ObjectJson(String) : Map

Accepte la valeur de chaîne d'un objet DynamoDB S3 et renvoie une carte contenant la clé, le compartiment, la région et la version facultative.

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