RDS에 대한 해석기 매핑 템플릿 참조 - AWS AppSync

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

RDS에 대한 해석기 매핑 템플릿 참조

AWS AppSync RDS 해석기 매핑 템플릿을 사용해 개발자는 Amazon Aurora Serverless를 위한 데이터 API로 SQL 쿼리를 전송하고 이러한 쿼리의 결과를 다시 가져올 수 있습니다.

요청 매핑 템플릿

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

버전

모든 요청 매핑 템플릿에 공통적으로 적용되는 버전 필드는 템플릿이 사용하는 버전을 정의합니다. 버전 필드는 필수입니다. 값 '2018-05-29'는 Amazon RDS 매핑 템플릿에 지원되는 유일한 버전입니다.

"version": "2018-05-29"

명령문 및 VariableMap

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

는 변수 맵 값을 사용하여 Amazon Aurora Serverless Data API로 전송될 SqlParameterized 쿼리를 구성합니다. SQL 명령문은 변수 맵에 제공된 파라미터를 사용하여 실행되므로 SQL 삽입 위험이 없습니다.

VariableTypeHintMap

variableTypeHintMapSQL 파라미터 유형 힌트를 보내는 데 사용할 수 있는 별칭 유형을 포함하는 선택적 필드입니다. 이러한 유형 힌트는 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여기에서 확인할 수 있습니다.