RDS 的解析器映射模板参考 - Amazon AppSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

RDS 的解析器映射模板参考

通过使用 Amazon AppSync RDS 解析器映射模板,开发人员可以将 SQL 查询发送到 Amazon Aurora Serverless 数据 API,并获取这些查询的结果。

请求映射模板

RDS 请求映射模板相当简单:

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

下面是 RDS 请求映射模板的 JSON 架构表示形式(解析后):

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

以下是一个具有静态查询的请求映射模板示例:

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

版本

version 字段是所有请求映射模板通用的,用于定义模板使用的版本。version 字段为必填项。“2018-05-29”值是 Amazon RDS 映射模板支持的唯一版本。

"version": "2018-05-29"

statements 和 variableMap

statements 数组是开发人员提供的查询的占位符。目前,每个请求映射模板最多支持两个查询。variableMap 是一个可选字段,它包含可用于使 SQL 语句更短且更易读的别名。例如,可以编写以下代码:

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

Amazon AppSync 使用变量映射值构建 SqlParameterized 查询,这些查询将发送到 Amazon Aurora Serverless 数据 API。SQL 语句是使用变量映射中提供的参数执行的,从而消除了 SQL 注入风险。

VariableTypeHintMap

variableTypeHintMap 是一个可选字段,它包含可用于发送 SQL 参数类型提示的别名类型。这些类型提示避免了 SQL 语句中的显式转换,从而使这些语句变得更短。例如,可以编写以下代码:

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

Amazon AppSync 使用变量映射值构建查询,这些查询将发送到 Amazon Aurora Serverless 数据 API。它还使用 variableTypeHintMap 数据,并将类型的信息发送到 RDS。可以在此处找到 RDS 支持的 typeHints