

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

# RDS の AWS AppSync リゾルバーマッピングテンプレートリファレンス
<a name="resolver-mapping-template-reference-rds"></a>

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

## リクエストマッピングテンプレート
<a name="request-mapping-template"></a>

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'"
    ]
}
```

## バージョン
<a name="version"></a>

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

```
"version": "2018-05-29"
```

## statements と VariableMap
<a name="statements-variablemap"></a>

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 API に送信される **[SqlParameterized](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)** クエリを構築します。SQL ステートメントは変数マップに指定されたパラメータを使用して実行されるため、SQL インジェクションのリスクが排除されます。

## VariableTypeHintMap
<a name="variabletypehintmap"></a>

`variableTypeHintMap` は、[SQL パラメータ](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)の型ヒントを送信するために使用できるエイリアス型を含むオプションのフィールドです。これらのタイプヒントは、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` については、[こちら](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)を参照してください。