DynamoDB-Helferobjekte in $util.dynamodb - AWS AppSync

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.dynamodbenthä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" }