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

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

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

-AWS AppSyncRDS リゾルバーのマッピングテンプレートを使用すると、開発者は SQL クエリを Data API for Amazon Aurora Serverless に送信し、これらのクエリの結果を取得できます。

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

RDS リクエストマッピングテンプレートは非常にシンプルです。

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

以下に示しているのは、解決済み 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" } } }

以下に示しているのは、静的クエリを使用したリクエストマッピングテンプレートの例です。

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

Version

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

"version": "2018-05-29"

Statements

statements 配列は、開発者が提供したクエリのプレースホルダーです。現在、リクエストマッピングテンプレートごとに最大 2 つのクエリがサポートされています。以下のことが可能です。

{ "version": "2018-05-29", "statements": [ $util.toJson("insert into BOOKS VALUES ('$ctx.args.newBook.author', '$ctx.args.newBook.title', '$ctx.args.newBook.ISBN13')"), $util.toJson("select * from BOOKS WHERE isbn13 = '$ctx.args.newBook.isbn13'") ] }

AWS AppSyncは、リクエストマッピングテンプレートごとに最大 2 つのステートメントをサポートしています。

VariableMap

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 API に送信されるクエリを作成します。たとえば、次の 2 つのクエリAWS AppSyncAmazon RDSに送信されるのは(仮定)“$ctx.args.newBook.author"='Mark Twain',"$ctx.args.newBook.title"='Adventures of Huckleberry Finn'および"$ctx.args.newBook.isbn13"='978-1948132817'):

INSERT INTO BOOKS VALUES ('Mark Twain', 'Adventures of Huckleberry Finn', '978-1948132817');

および

SELECT from BOOKS where isb13='978-1948132817';