Tutorial: Solucionadores locales - AWS AppSync

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.

Tutorial: Solucionadores locales

nota

Ahora admitimos de forma básica el tiempo de ejecución APPSYNC_JS y su documentación. Considere la opción de utilizar el tiempo de ejecución APPSYNC_JS y sus guías aquí.

AWS AppSync le permite utilizar orígenes de datos compatibles (AWS Lambda, Amazon DynamoDB o Amazon OpenSearch Service) para realizar diversas operaciones. Sin embargo, en determinados casos, es posible que no sea necesario realizar una llamada a un origen de datos admitido.

Aquí es donde un solucionador local es útil. En lugar de llamar a un origen de datos remoto, el solucionador local simplemente reenviará los resultados de la plantilla de mapeo de solicitudes a la plantilla de mapeo de respuestas. La resolución de campo no sale de AWS AppSync.

Los solucionadores locales son útiles para varios casos de uso. El caso de uso más habitual consiste en publicar notificaciones sin activar una llamada de origen de datos. Para demostrar este caso de uso vamos a crear una aplicación buscapersonas con la que los usuarios puedan enviarse notificaciones. Este ejemplo utiliza suscripciones, de modo que si no está familiarizado con las suscripciones, puede seguir el tutorial de datos en tiempo real.

Creación de la aplicación buscapersonas

En nuestra aplicación buscapersonas, los clientes pueden suscribirse a una bandeja de entrada y enviar notificaciones a otros clientes. Cada notificación contiene un mensaje. El esquema es el siguiente:

schema { query: Query mutation: Mutation subscription: Subscription } type Subscription { inbox(to: String!): Page @aws_subscribe(mutations: ["page"]) } type Mutation { page(body: String!, to: String!): Page! } type Page { from: String to: String! body: String! sentAt: String! } type Query { me: String }

Asociemos un solucionador al campo Mutation.page. En el panel Schema (Esquema), haga clic en Attach Resolver (Asociar solucionador) junto a la definición de campo en el panel derecho. Cree un nuevo origen de datos de tipo None (Ninguno) y asígnele el nombre PageDataSource.

Para la plantilla de mapeo de solicitud, escriba:

{ "version": "2017-02-28", "payload": { "body": $util.toJson($context.arguments.body), "from": $util.toJson($context.identity.username), "to": $util.toJson($context.arguments.to), "sentAt": "$util.time.nowISO8601()" } }

Y para la plantilla de mapeo de respuesta, seleccione la opción predeterminada Forward the result (Reenviar el resultado). Guarde el solucionador. Su aplicación ya está lista, ya puede ejecutarla.

Envío y suscripción a notificaciones

Para que los clientes reciban notificaciones, primero deben estar suscritos a una bandeja de entrada.

En el panel Queries (Consultas) vamos a ejecutar la suscripción inbox:

subscription Inbox { inbox(to: "Nadia") { body to from sentAt } }

Nadia recibirá notificaciones siempre que se invoque la mutación Mutation.page. Vamos a invocar la mutación ejecutándola:

mutation Page { page(to: "Nadia", body: "Hello, World!") { body to from sentAt } }

Acabamos de demostrar el uso de solucionadores locales enviando una notificación y recibiéndola sin salir de AWS AppSync.