AWS AppSync référence du modèle de mappage du résolveur pour RDS - AWS AppSync

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS AppSync référence du modèle de mappage du résolveur pour RDS

Les modèles de mappage du AWS AppSync RDS résolveur permettent aux développeurs d'envoyer des SQL requêtes à Data API for Amazon Aurora Serverless et de récupérer le résultat de ces requêtes.

Modèle de mappage des demandes

Le modèle de mappage des RDS demandes est assez simple :

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

Voici la représentation JSON schématique du modèle de mappage des RDS demandes, une fois résolu.

{ "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" } } }

Voici un exemple de modèle de mappage de demandes avec une requête statique :

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

Version

Commun à tous les modèles de mappage de demandes, le champ de version définit la version utilisée par le modèle. Le champ de version est obligatoire. La valeur « 2018-05-29 » est la seule version prise en charge pour les modèles de mappage AmazonRDS.

"version": "2018-05-29"

Déclarations et VariableMap

Le tableau des instructions est un espace réservé pour les requêtes fournies par le développeur. Actuellement, jusqu'à deux requêtes par modèle de mappage de demandes sont prises en charge. variableMapIl s'agit d'un champ facultatif qui contient des alias qui peuvent être utilisés pour raccourcir les SQL instructions et les rendre plus lisibles. Par exemple, les solutions suivantes sont possibles :

{ "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 utilisera les valeurs cartographiques variables pour créer les SqlParameterizedrequêtes qui seront envoyées aux données API sans serveur Amazon Aurora. Les SQL instructions sont exécutées avec les paramètres fournis dans la carte des variables, ce qui élimine le risque d'SQLinjection.

VariableTypeHintMap

variableTypeHintMapIl s'agit d'un champ facultatif contenant des types aliasés qui peuvent être utilisés pour envoyer des indications sur le type de SQLparamètre. Ces indications de type évitent le transtypage explicite des SQL instructions, ce qui les raccourcit. Par exemple, les solutions suivantes sont possibles :

{ "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 utilisera la valeur cartographique variable pour créer les requêtes envoyées à Amazon Aurora Serverless DataAPI. Il utilise également les variableTypeHintMap données et envoie les informations du type àRDS. RDS-supported typeHints peut être trouvé ici.