AWS AppSync のリゾルバーマッピングテンプレートリファレンス RDS - AWS AppSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS AppSync のリゾルバーマッピングテンプレートリファレンス RDS

リ AWS AppSync RDSゾルバーマッピングテンプレートを使用すると、デベロッパーは Data API for Amazon Aurora Serverless にSQLクエリを送信し、これらのクエリの結果を返すことができます。

リクエストマッピングテンプレート

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

すべてのリクエストマッピングテンプレートに共通で、バージョンフィールド はテンプレートが使用するバージョンを定義します。バージョンフィールドは必須です。値2018-05-29」は、Amazon RDSマッピングテンプレートでサポートされている唯一のバージョンです。

"version": "2018-05-29"

ステートメントと VariableMap

statements 配列は、開発者が提供したクエリのプレースホルダーです。現在、リクエストマッピングテンプレートごとに最大 2 つのクエリがサポートされています。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) } }

AWS AppSync は可変マップ値を使用して、Amazon Aurora Serverless Data に送信するSqlParameterizedクエリを構築します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" } }

AWS AppSync は可変マップ値を使用して、Amazon Aurora Serverless Data に送信されるクエリを作成しますAPI。また、variableTypeHintMapデータを使用し、タイプ情報を に送信しますRDS。RDS- サポートされる typeHints は、ここで確認できます。