

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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"
```

## 명령문 및 VariableMap
<a name="statements-variablemap"></a>

명령문 배열은 개발자 제공 쿼리를 위한 자리 표시자입니다. 현재, 요청 매핑 템플릿당 쿼리를 최대 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)에서 확인할 수 있습니다.