Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione da a in VTL JavaScript AWS AppSync
AWS AppSync consente di scrivere la logica aziendale per i resolver e le funzioni utilizzando o. VTL JavaScript Con entrambi i linguaggi, scrivi una logica che istruisce il AWS AppSync servizio su come interagire con le tue fonti di dati. ConVTL, si scrivono modelli di mappatura che devono restituire una stringa con codifica validaJSON. Con JavaScript, si scrivono gestori di richieste e risposte che restituiscono oggetti. Non restituisci una stringa con JSON codifica.
Ad esempio, utilizza il seguente modello di VTL mappatura per ottenere un elemento Amazon DynamoDB:
{ "operation": "GetItem", "key": { "id": $util.dynamodb.toDynamoDBJson($ctx.args.id), } }
L'utilità $util.dynamodb.toDynamoDBJson
restituisce una JSON stringa con codifica. Se $ctx.args.id
è impostato su<id>
, il modello restituisce una stringa con codifica validaJSON:
{ "operation": "GetItem", "key": { "id": {"S": "<id>"}, } }
Quando si lavora con JavaScript, non è necessario stampare stringhe non elaborate con JSON codifica all'interno del codice e non è necessario utilizzare un'utilità simile. toDynamoDBJson
Un esempio equivalente del modello di mappatura riportato sopra è:
import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: {id: util.dynamodb.toDynamoDB(ctx.args.id)} }; }
Un'alternativa consiste nell'utilizzareutil.dynamodb.toMapValues
, che è l'approccio consigliato per gestire un oggetto di valori:
import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: util.dynamodb.toMapValues({ id: ctx.args.id }), }; }
Ciò equivale a:
{ "operation": "GetItem", "key": { "id": { "S": "<id>" } } }
Nota
Consigliamo di utilizzare il modulo DynamoDB con sorgenti dati DynamoDB:
import * as ddb from '@aws-appsync/utils/dynamodb' export function request(ctx) { ddb.get({ key: { id: ctx.args.id } }) }
Come altro esempio, prendi il seguente modello di mappatura per inserire un elemento in un'origine dati Amazon DynamoDB:
{ "operation" : "PutItem", "key" : { "id": $util.dynamodb.toDynamoDBJson($util.autoId()), }, "attributeValues" : $util.dynamodb.toMapValuesJson($ctx.args) }
Una volta valutata, questa stringa del modello di mappatura deve produrre una stringa con codifica valida. JSON Quando si utilizza JavaScript, il codice restituisce direttamente l'oggetto della richiesta:
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), }; }
che restituisce:
{ "operation": "PutItem", "key": { "id": { "S": "2bff3f05-ff8c-4ed8-92b4-767e29fc4e63" } }, "attributeValues": { "firstname": { "S": "Shaggy" }, "age": { "N": 4 } } }
Nota
Consigliamo di utilizzare il modulo DynamoDB con sorgenti dati DynamoDB:
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 }) }