Referencia de plantillas de mapeo de solucionador para RDS - 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.

Referencia de plantillas de mapeo de solucionador para RDS

Las plantillas de mapeo de solucionador de RDS de AWS AppSync permiten a los desarrolladores enviar consultas SQL a una API de datos para Amazon Aurora sin servidor y obtener el resultado de estas consultas.

Plantilla de mapeo de solicitudes

La plantilla de mapeo de solicitudes de RDS es bastante sencilla:

{ "version": "2018-05-29", "statements": [], "variableMap": {}, "variableTypeHintMap": {} }

A continuación, se muestra el esquema JSON de la plantilla de mapeo de solicitudes de RDS una vez que se ha resuelto:

{ "definitions": {}, "$schema": "https://json-schema.org/draft-07/schema#", "$id": "https://example.com/root.json", "type": "object", "title": "The Root Schema", "required": [ "version", "statements", "variableMap" ], "properties": { "version": { "$id": "#/properties/version", "type": "string", "title": "The Version Schema", "default": "", "examples": [ "2018-05-29" ], "enum": [ "2018-05-29" ], "pattern": "^(.*)$" }, "statements": { "$id": "#/properties/statements", "type": "array", "title": "The Statements Schema", "items": { "$id": "#/properties/statements/items", "type": "string", "title": "The Items Schema", "default": "", "examples": [ "SELECT * from BOOKS" ], "pattern": "^(.*)$" } }, "variableMap": { "$id": "#/properties/variableMap", "type": "object", "title": "The Variablemap Schema" }, "variableTypeHintMap": { "$id": "#/properties/variableTypeHintMap", "type": "object", "title": "The variableTypeHintMap Schema" } } }

A continuación se muestra un ejemplo de la plantilla de mapeo de solicitudes con una consulta estática:

{ "version": "2018-05-29", "statements": [ "select title, isbn13 from BOOKS where author = 'Mark Twain'" ] }

Versión

El campo de versión es común a todas las plantillas de mapeo de solicitudes y define la versión utilizada por la plantilla. El campo version es obligatorio. El valor “2018-05-29” es la única versión admitida para las plantillas de mapeo de Amazon RDS.

"version": "2018-05-29"

Instrucciones y VariableMap

La matriz de instrucciones es un marcador de posición para las consultas que proporciona el desarrollador. En la actualidad, se admiten hasta dos consultas por plantilla de mapeo de solicitudes. El campo variableMap es opcional y contiene los alias que se pueden utilizar para que las instrucciones SQL sean más breves y legibles. Por ejemplo, lo siguiente es posible:

{ "version": "2018-05-29", "statements": [ "insert into BOOKS VALUES (:AUTHOR, :TITLE, :ISBN13)", "select * from BOOKS WHERE isbn13 = :ISBN13" ], "variableMap": { ":AUTHOR": $util.toJson($ctx.args.newBook.author), ":TITLE": $util.toJson($ctx.args.newBook.title), ":ISBN13": $util.toJson($ctx.args.newBook.isbn13) } }

AWS AppSync utilizará los valores del mapa de variables para construir las consultas SqlParameterized que se enviarán a la API de datos de Amazon Aurora sin servidor. Las instrucciones SQL se ejecutan con parámetros proporcionados en el mapa de variables, lo que elimina el riesgo de inyección de código SQL.

VariableTypeHintMap

El variableTypeHintMap es un campo opcional que contiene tipos con alias que se pueden usar para enviar sugerencias de tipo de parámetros SQL. Estas sugerencias de tipo evitan la conversión explícita en las instrucciones SQL, lo que las hace más cortas. Por ejemplo, lo siguiente es posible:

{ "version": "2018-05-29", "statements": [ "insert into LOGINDATA VALUES (:ID, :TIME)", "select * from LOGINDATA WHERE id = :ID" ], "variableMap": { ":ID": $util.toJson($ctx.args.id), ":TIME": $util.toJson($ctx.args.time) }, "variableTypeHintMap": { ":id": "UUID", ":time": "TIME" } }

AWS AppSync utilizará el valor del mapa de variables para construir las consultas que se envían a la API de datos de Amazon Aurora sin servidor. También utiliza los datos de variableTypeHintMap y envía la información del tipo a RDS. typeHints compatibles con RDS se pueden encontrar aquí.