As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Os modelos de mapeamento do resolvedor AWS AppSync RDS permitem que os desenvolvedores enviem consultas SQL para uma API de dados do Amazon Aurora Serverless e recebam o resultado dessas consultas.
Modelo de mapeamento de solicitações
O modelo de mapeamento de solicitação do RDS é bastante simples:
{
"version": "2018-05-29",
"statements": [],
"variableMap": {},
"variableTypeHintMap": {}
}
Veja aqui a representação do esquema JSON do modelo de mapeamento da solicitação do RDS, uma vez resolvido:
{
"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"
}
}
}
Veja a seguir um exemplo de modelo de mapeamento de solicitação com uma consulta estática:
{
"version": "2018-05-29",
"statements": [
"select title, isbn13 from BOOKS where author = 'Mark Twain'"
]
}
Versão
Comum a todos os modelos de mapeamento de solicitação, o campo de versão define a versão usada pelo modelo. O campo de versão é obrigatório. O valor "2018-05-29" é a única versão compatível com os modelos de mapeamento do Amazon RDS.
"version": "2018-05-29"
Declarações e VariableMap
A matriz de instruções é um espaço reservado para as consultas fornecidas pelo desenvolvedor. Atualmente, oferecemos suporte a até duas consultas por modelo de mapeamento de solicitação. O variableMap
é um campo opcional que contém aliases que podem ser usados para tornar as instruções SQL mais curtas e legíveis. O seguinte exemplo é possível:
{
"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 usará os valores do mapa variável para criar SqlParameterizedas consultas que serão enviadas para a API de dados sem servidor do Amazon Aurora. As instruções SQL são executadas com parâmetros fornecidos no mapa de variáveis, o que elimina o risco de injeção de SQL.
VariableTypeHintMap
variableTypeHintMap
é um campo opcional contendo tipos de aliases que podem ser usados para enviar dicas de tipos de parâmetros SQL. Essas dicas de tipo evitam a conversão explícita nas instruções SQL, tornando-as mais curtas. O seguinte exemplo é possível:
{
"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 usará o valor do mapa variável para criar as consultas que são enviadas para a API de dados sem servidor do Amazon Aurora. Ele também usa os dados de variableTypeHintMap
e envia as informações do tipo para o RDS. O typeHints
com suporte a RDS pode ser encontrado aqui.