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.
Migration von VTL nach in JavaScript AWS AppSync
AWS AppSync ermöglicht es Ihnen, Ihre Geschäftslogik für Ihre Resolver und Funktionen mithilfe von VTL oder zu schreiben. JavaScript In beiden Sprachen schreiben Sie eine Logik, die den AWS AppSync Service anweist, wie er mit Ihren Datenquellen interagieren soll. Mit VTL schreiben Sie Zuordnungsvorlagen, die eine gültige JSON -kodierte Zeichenfolge ergeben müssen. Mit schreiben Sie JavaScript Anforderungs- und Antworthandler, die Objekte zurückgeben. Sie geben keine JSON -kodierte Zeichenfolge zurück.
Verwenden Sie zum Beispiel die folgende VTL Zuordnungsvorlage, um ein Amazon DynamoDB DynamoDB-Element abzurufen:
{ "operation": "GetItem", "key": { "id": $util.dynamodb.toDynamoDBJson($ctx.args.id), } }
Das Hilfsprogramm $util.dynamodb.toDynamoDBJson
gibt eine JSON -kodierte Zeichenfolge zurück. Wenn auf gesetzt $ctx.args.id
ist<id>
, ergibt die Vorlage eine gültige JSON -kodierte Zeichenfolge:
{ "operation": "GetItem", "key": { "id": {"S": "<id>"}, } }
Wenn Sie mit arbeiten JavaScript, müssen Sie keine rohen JSON -codierten Zeichenketten in Ihrem Code ausdrucken, und die Verwendung eines Hilfsprogramms wie ist nicht erforderlich. toDynamoDBJson
Ein äquivalentes Beispiel für die obige Mapping-Vorlage ist:
import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: {id: util.dynamodb.toDynamoDB(ctx.args.id)} }; }
Eine Alternative ist die Verwendung util.dynamodb.toMapValues
des empfohlenen Ansatzes zur Behandlung eines Werteobjekts:
import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: util.dynamodb.toMapValues({ id: ctx.args.id }), }; }
Das ergibt:
{ "operation": "GetItem", "key": { "id": { "S": "<id>" } } }
Anmerkung
Wir empfehlen, das DynamoDB-Modul mit DynamoDB-Datenquellen zu verwenden:
import * as ddb from '@aws-appsync/utils/dynamodb' export function request(ctx) { ddb.get({ key: { id: ctx.args.id } }) }
Nehmen Sie als weiteres Beispiel die folgende Zuordnungsvorlage, um ein Element in eine Amazon DynamoDB DynamoDB-Datenquelle einzufügen:
{ "operation" : "PutItem", "key" : { "id": $util.dynamodb.toDynamoDBJson($util.autoId()), }, "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args) }
Bei der Auswertung muss diese Zeichenfolge der Zuordnungsvorlage eine gültige JSON -kodierte Zeichenfolge ergeben. Bei Verwendung JavaScript gibt Ihr Code das Anforderungsobjekt direkt zurück:
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { id = util.autoId(), ...values } = ctx.args; return { operation: 'PutItem', key: util.dynamodb.toMapValues({ id }), attributeValues: util.dynamodb.toMapValues(values), }; }
was wie folgt ausgewertet wird:
{ "operation": "PutItem", "key": { "id": { "S": "2bff3f05-ff8c-4ed8-92b4-767e29fc4e63" } }, "attributeValues": { "firstname": { "S": "Shaggy" }, "age": { "N": 4 } } }
Anmerkung
Wir empfehlen, das DynamoDB-Modul mit DynamoDB-Datenquellen zu verwenden:
import { util } from '@aws-appsync/utils' import * as ddb from '@aws-appsync/utils/dynamodb' export function request(ctx) { const { id = util.autoId(), ...item } = ctx.args return ddb.put({ key: { id }, item }) }