AWS AppSync referencia de plantilla de mapeo de resolución 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.

AWS AppSync referencia de plantilla de mapeo de resolución para RDS

Las plantillas de mapeo de AWS AppSync RDS resolución permiten a los desarrolladores enviar SQL consultas a Data API for Amazon Aurora Serverless y obtener el resultado de estas consultas.

Plantilla de mapeo de solicitudes

La plantilla de mapeo de RDS solicitudes es bastante sencilla:

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

Esta es la representación JSON esquemática de la plantilla de mapeo de RDS solicitudes, una vez resuelta.

{ "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 compatible con las plantillas de RDS mapas de Amazon.

"version": "2018-05-29"

Declaraciones 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. variableMapEs un campo opcional que contiene alias que se pueden usar para acortar SQL las declaraciones y hacerlas más 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 de mapa variables para crear las SqlParameterizedconsultas que se enviarán a los datos API sin servidor de Amazon Aurora. Las SQL sentencias se ejecutan con los parámetros proporcionados en el mapa de variables, lo que elimina el riesgo de SQL inyección.

VariableTypeHintMap

variableTypeHintMapSe trata de un campo opcional que contiene tipos con alias y que se puede utilizar para enviar sugerencias sobre los tipos de SQLparámetros. Estas sugerencias de tipo evitan incluir información explícita en las SQL declaraciones, 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 variable para crear las consultas que se envían a los datos API sin servidor de Amazon Aurora. También utiliza los variableTypeHintMap datos y envía la información del tipo aRDS. RDS-supported typeHints se puede encontrar aquí.