

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# AWS AppSync referensi template pemetaan resolver untuk RDS
<a name="resolver-mapping-template-reference-rds"></a>

Template pemetaan resolver AWS AppSync RDS memungkinkan pengembang mengirim kueri SQL ke API Data untuk Amazon Aurora Tanpa Server dan mendapatkan kembali hasil kueri ini.

## Meminta template pemetaan
<a name="request-mapping-template"></a>

Template pemetaan permintaan RDS cukup sederhana:

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

Berikut adalah representasi skema JSON dari template pemetaan permintaan RDS, setelah diselesaikan.

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

Berikut ini adalah contoh template pemetaan permintaan dengan query statis:

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

## Versi
<a name="version"></a>

Umum untuk semua template pemetaan permintaan, bidang versi mendefinisikan versi yang digunakan template. Bidang versi diperlukan. Nilai “2018-05-29" adalah satu-satunya versi yang didukung untuk templat pemetaan Amazon RDS.

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

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

Array pernyataan adalah placeholder untuk kueri yang disediakan pengembang. Saat ini, hingga dua kueri per permintaan template pemetaan didukung. `variableMap`Ini adalah bidang opsional yang berisi alias yang dapat digunakan untuk membuat pernyataan SQL lebih pendek dan lebih mudah dibaca. Misalnya, hal berikut ini dimungkinkan:

```
{
"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 akan menggunakan nilai peta variabel untuk membuat **[SqlParameterized](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)**kueri yang akan dikirim ke API Data Tanpa Server Amazon Aurora. Pernyataan SQL dijalankan dengan parameter yang disediakan dalam peta variabel, yang menghilangkan risiko injeksi SQL. 

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

`variableTypeHintMap`Ini adalah bidang opsional yang berisi tipe alias yang dapat digunakan untuk mengirim petunjuk tipe [parameter SQL](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html). Petunjuk jenis ini menghindari casting eksplisit dalam pernyataan SQL, membuatnya lebih pendek. Misalnya, hal berikut ini dimungkinkan:

```
{
    "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 akan menggunakan nilai peta variabel untuk membuat kueri yang dikirim ke API Data Tanpa Server Amazon Aurora. Ini juga menggunakan `variableTypeHintMap` data dan mengirimkan informasi tipe ke RDS. [Didukung RDS `typeHints` dapat ditemukan di sini.](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)