Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Migración de VTL a in JavaScript AWS AppSync

Modo de enfoque
Migración de VTL a in JavaScript AWS AppSync - AWS AppSync GraphQL

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS AppSync le permite escribir la lógica empresarial para sus resolutores y funciones mediante VTL o. JavaScript En ambos lenguajes, se escribe una lógica que indica al AWS AppSync servicio cómo interactuar con las fuentes de datos. Con VTL, escribe plantillas de mapeo que deben evaluarse como una cadena codificada en JSON válida. Con él JavaScript, escribes controladores de solicitudes y respuestas que devuelven objetos. No devuelve una cadena codificada en JSON.

Por ejemplo, tome la siguiente plantilla de mapeo VTL para obtener un elemento de Amazon DynamoDB:

{ "operation": "GetItem", "key": { "id": $util.dynamodb.toDynamoDBJson($ctx.args.id), } }

La utilidad $util.dynamodb.toDynamoDBJson devuelve una cadena codificada en JSON. Si $ctx.args.id se establece en <id>, la plantilla se evalúa como una cadena codificada en JSON válida:

{ "operation": "GetItem", "key": { "id": {"S": "<id>"}, } }

Al trabajar con ellos JavaScript, no es necesario imprimir cadenas codificadas en JSON sin procesar dentro de su código, y no toDynamoDBJson es necesario utilizar una utilidad similar. Un ejemplo equivalente de la plantilla de mapeo anterior es:

import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: {id: util.dynamodb.toDynamoDB(ctx.args.id)} }; }

Una alternativa es utilizar util.dynamodb.toMapValues, que es el enfoque recomendado para gestionar un objeto de valores:

import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'GetItem', key: util.dynamodb.toMapValues({ id: ctx.args.id }), }; }

Esto se evalúa como:

{ "operation": "GetItem", "key": { "id": { "S": "<id>" } } }
nota

Recomendamos utilizar el módulo de DynamoDB con orígenes de datos de DynamoDB:

import * as ddb from '@aws-appsync/utils/dynamodb' export function request(ctx) { ddb.get({ key: { id: ctx.args.id } }) }

Como otro ejemplo, tome la siguiente plantilla de mapeo para colocar un elemento en un origen de datos de Amazon DynamoDB:

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

Durante su evaluación, esta cadena de plantilla de mapeo debe producir una cadena codificada en JSON válida. Cuando lo usas JavaScript, tu código devuelve el objeto de solicitud directamente:

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), }; }

que se evalúa como:

{ "operation": "PutItem", "key": { "id": { "S": "2bff3f05-ff8c-4ed8-92b4-767e29fc4e63" } }, "attributeValues": { "firstname": { "S": "Shaggy" }, "age": { "N": 4 } } }
nota

Recomendamos utilizar el módulo de DynamoDB con orígenes de datos de 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 }) }
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.