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.

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

Les modèles de mappage du résolveur AWS AppSync RDS permettent aux développeurs d'envoyer des requêtes SQL à une API de données pour 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 de demande RDS est relativement simple :

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

Voici la représentation du schéma JSON du modèle de mappage de demande RDS, une fois qu'il est 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 Amazon RDS.

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

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 paramètre SQL. Ces indications de type évitent le transtypage explicite des instructions SQL, 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 AppSyncutilisera la valeur cartographique variable pour créer les requêtes envoyées à l'API Amazon Aurora Serverless Data. Il utilise également les variableTypeHintMap données et envoie les informations du type à RDS. Le support RDS typeHints peut être trouvé ici.