Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
DynamoDB-Helferobjekte in $util.dynamodb
Anmerkung
Wir unterstützen jetzt hauptsächlich die APPSYNC _JS-Laufzeit und ihre Dokumentation. Bitte erwägen Sie, die APPSYNC _JS-Laufzeit und ihre Anleitungen hier zu verwenden.
$util.dynamodb
enthält Hilfsmethoden, die das Schreiben und Lesen von Daten in Amazon DynamoDB erleichtern, z. B. automatische Typzuweisung und Formatierung. Diese Methoden sind so konzipiert, dass primitive Typen und Listen automatisch dem richtigen DynamoDB-Eingabeformat zugeordnet werden, das Teil Map
des Formats ist. { "TYPE" : VALUE
}
Bisher könnte eine Vorlage für die Anforderungszuweisung zum Erstellen eines neuen Elements in DynamoDB beispielsweise so ausgesehen haben:
{ "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) } } }
Wenn wir Felder zum Objekt hinzufügen wollten, hätten wir die GraphQL-Abfrage im Schema und die Zuweisungsvorlage für Anforderungen aktualisieren müssen. Wir können jetzt jedoch unsere Vorlage für die Anforderungszuweisung so umstrukturieren, dass sie automatisch neue Felder aufnimmt, die in unserem Schema hinzugefügt wurden, und sie DynamoDB mit den richtigen Typen hinzufügt:
{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "id" : $util.dynamodb.toDynamoDBJson($util.autoId()) }, "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args) }
Im vorherigen Beispiel verwenden wir den $util.dynamodb.toDynamoDBJson(...)
Helper, um die generierte ID automatisch in die DynamoDB-Darstellung eines String-Attributs zu konvertieren. Wir nehmen dann alle Argumente und konvertieren sie in ihre DynamoDB-Repräsentationen und geben sie in das attributeValues
Feld in der Vorlage aus.
Jeder Helfer hat zwei Versionen: eine Version, die ein Objekt zurückgibt (z. B.$util.dynamodb.toString(...)
), und eine Version, die das Objekt als JSON Zeichenfolge zurückgibt (z. B.$util.dynamodb.toStringJson(...)
). Im vorherigen Beispiel haben wir die Version verwendet, die die Daten als JSON Zeichenfolge zurückgibt. Wenn Sie das Objekt ändern möchten, bevor es in der Vorlage verwendet wird, können Sie stattdessen folgendermaßen ein Objekt zurückgeben:
{ "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) }
Im vorherigen Beispiel geben wir die konvertierten Argumente als Map statt als JSON Zeichenfolge zurück und fügen dann die timestamp
Felder version
und hinzu, bevor wir sie schließlich in das attributeValues
Feld in der Vorlage mit $util.toJson(...)
ausgeben.
Die JSON Version der einzelnen Helfer entspricht dem Einpacken der JSON Nicht-Version. $util.toJson(...)
Die folgenden Aussagen sind beispielsweise identisch:
$util.toStringJson("Hello, World!") $util.toJson($util.toString("Hello, World!"))
toDynamoDB
-
$util.dynamodb.toDynamoDB(Object) : Map
-
Allgemeines Objektkonvertierungstool für DynamoDB, das Eingabeobjekte in die entsprechende DynamoDB-Darstellung konvertiert. Es ist vorbestimmt, wie einige Typen dargestellt werden: z. B. werden Listen ("L") anstelle von Sätzen ("SS", "NS", "BS") verwendet. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Beispiel für eine Zeichenfolge
Input: $util.dynamodb.toDynamoDB("foo") Output: { "S" : "foo" }
Beispiel für eine Zahl
Input: $util.dynamodb.toDynamoDB(12345) Output: { "N" : 12345 }
Boolesches Beispiel
Input: $util.dynamodb.toDynamoDB(true) Output: { "BOOL" : true }
Beispiel auflisten
Input: $util.dynamodb.toDynamoDB([ "foo", 123, { "bar" : "baz" } ]) Output: { "L" : [ { "S" : "foo" }, { "N" : 123 }, { "M" : { "bar" : { "S" : "baz" } } } ] }
Beispiel für eine Karte
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
-
Das Gleiche wie
$util.dynamodb.toDynamoDB(Object) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toString Dienstprogramme
$util.dynamodb.toString(String) : String
-
Konvertiert eine Eingabezeichenfolge in das DynamoDB-Zeichenkettenformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toString("foo") Output: { "S" : "foo" }
-
$util.dynamodb.toStringJson(String) : Map
-
Das Gleiche wie
$util.dynamodb.toString(String) : String
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.toStringSet(List<String>) : Map
-
Konvertiert eine Liste mit Strings in das DynamoDB-Zeichenkettensatzformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toStringSet([ "foo", "bar", "baz" ]) Output: { "SS" : [ "foo", "bar", "baz" ] }
-
$util.dynamodb.toStringSetJson(List<String>) : String
-
Das Gleiche wie
$util.dynamodb.toStringSet(List<String>) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toNumber Dienstprogramme
-
$util.dynamodb.toNumber(Number) : Map
-
Konvertiert eine Zahl in das DynamoDB-Zahlenformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toNumber(12345) Output: { "N" : 12345 }
-
$util.dynamodb.toNumberJson(Number) : String
-
Das Gleiche wie
$util.dynamodb.toNumber(Number) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.toNumberSet(List<Number>) : Map
-
Konvertiert eine Liste von Zahlen in das DynamoDB-Nummernsatzformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toNumberSet([ 1, 23, 4.56 ]) Output: { "NS" : [ 1, 23, 4.56 ] }
-
$util.dynamodb.toNumberSetJson(List<Number>) : String
-
Das Gleiche wie
$util.dynamodb.toNumberSet(List<Number>) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toBinary Dienstprogramme
-
$util.dynamodb.toBinary(String) : Map
-
Konvertiert als Base64-Zeichenfolge kodierte Binärdaten in das DynamoDB-Binärformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toBinary("foo") Output: { "B" : "foo" }
-
$util.dynamodb.toBinaryJson(String) : String
-
Das Gleiche wie
$util.dynamodb.toBinary(String) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.toBinarySet(List<String>) : Map
-
Konvertiert eine Liste von Binärdaten, die als Base64-Zeichenketten kodiert sind, in das DynamoDB-Binärsatzformat. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toBinarySet([ "foo", "bar", "baz" ]) Output: { "BS" : [ "foo", "bar", "baz" ] }
-
$util.dynamodb.toBinarySetJson(List<String>) : String
-
Das Gleiche wie
$util.dynamodb.toBinarySet(List<String>) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toBoolean Dienstprogramme
-
$util.dynamodb.toBoolean(Boolean) : Map
-
Konvertiert einen booleschen Wert in das entsprechende boolesche DynamoDB-Format. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toBoolean(true) Output: { "BOOL" : true }
-
$util.dynamodb.toBooleanJson(Boolean) : String
-
Das Gleiche wie
$util.dynamodb.toBoolean(Boolean) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toNull Dienstprogramme
-
$util.dynamodb.toNull() : Map
-
Gibt eine Null im DynamoDB-Null-Format zurück. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toNull() Output: { "NULL" : null }
-
$util.dynamodb.toNullJson() : String
-
Das Gleiche wie
$util.dynamodb.toNull() : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toList Dienstprogramme
$util.dynamodb.toList(List) : Map
-
Konvertiert eine Liste von Objekten in das DynamoDB-Listenformat. Jedes Element in der Liste wird auch in das entsprechende DynamoDB-Format konvertiert. Es ist vorbestimmt, wie einige verschachtelte Objekte dargestellt werden: z. B. werden Listen ("L") anstelle von Sätzen ("SS", "NS", "BS") verwendet. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
Input: $util.dynamodb.toList([ "foo", 123, { "bar" : "baz" } ]) Output: { "L" : [ { "S" : "foo" }, { "N" : 123 }, { "M" : { "bar" : { "S" : "baz" } } } ] }
-
$util.dynamodb.toListJson(List) : String
-
Das Gleiche wie
$util.dynamodb.toList(List) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
toMap Dienstprogramme
-
$util.dynamodb.toMap(Map) : Map
-
Konvertiert eine Map in das DynamoDB-Kartenformat. Jeder Wert in der Map wird ebenfalls in das entsprechende DynamoDB-Format konvertiert. Es ist vorbestimmt, wie einige verschachtelte Objekte dargestellt werden: z. B. werden Listen ("L") anstelle von Sätzen ("SS", "NS", "BS") verwendet. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
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
-
Das Gleiche wie
$util.dynamodb.toMap(Map) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.toMapValues(Map) : Map
-
Erstellt eine Kopie der Map, in der jeder Wert in das entsprechende DynamoDB-Format konvertiert wurde. Es ist vorbestimmt, wie einige verschachtelte Objekte dargestellt werden: z. B. werden Listen ("L") anstelle von Sätzen ("SS", "NS", "BS") verwendet.
Input: $util.dynamodb.toMapValues({ "foo": "bar", "baz" : 1234, "beep": [ "boop"] }) Output: { "foo" : { "S" : "bar" }, "baz" : { "N" : 1234 }, "beep" : { "L" : [ { "S" : "boop" } ] } }
Anmerkung
Dies unterscheidet sich
$util.dynamodb.toMap(Map) : Map
geringfügig davon, dass nur der Inhalt des DynamoDB-Attributwerts zurückgegeben wird, nicht jedoch der gesamte Attributwert selbst. Die folgenden Aussagen sind beispielsweise identisch:$util.dynamodb.toMapValues($map) $util.dynamodb.toMap($map).get("M")
-
$util.dynamodb.toMapValuesJson(Map) : String
-
Das Gleiche wie
$util.dynamodb.toMapValues(Map) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück.
S3Object-Dienstprogramme
-
$util.dynamodb.toS3Object(String key, String bucket, String region) : Map
-
Konvertiert den Schlüssel, den Bucket und die Region in die DynamoDB S3-Objektdarstellung. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
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
-
Das Gleiche wie
$util.dynamodb.toS3Object(String key, String bucket, String region) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map
-
Konvertiert den Schlüssel, den Bucket, die Region und die optionale Version in die DynamoDB S3-Objektdarstellung. Dies gibt ein Objekt zurück, das den DynamoDB-Attributwert beschreibt.
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
-
Das Gleiche wie
$util.dynamodb.toS3Object(String key, String bucket, String region, String version) : Map
, gibt aber den DynamoDB-Attributwert als JSON kodierte Zeichenfolge zurück. -
$util.dynamodb.fromS3ObjectJson(String) : Map
-
Akzeptiert den Zeichenkettenwert eines DynamoDB S3-Objekts und gibt eine Map zurück, die den Schlüssel, den Bucket, die Region und die optionale Version enthält.
Input: $util.dynamodb.fromS3ObjectJson({ "S" : "{ \"s3\" : { \"key\" : \"foo\", \"bucket\" : \"bar\", \"region\" : \"baz\", \"version\" = \"beep\" } }" }) Output: { "key" : "foo", "bucket" : "bar", "region" : "baz", "version" : "beep" }