형식 시스템(요청 매핑) - AWS AppSync

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

형식 시스템(요청 매핑)

AWS AppSync DynamoDB 함수를 사용하여 DynamoDB 테이블을 호출할 때 AWS AppSync 는 해당 호출에 사용할 각 값의 유형을 알아야 합니다. 이는 DynamoDB가 GraphQL 또는 JSON (예: 세트 및 바이너리 데이터)보다 더 많은 유형의 프리미티브를 지원하기 때문입니다. 는 GraphQL과 DynamoDB 간에 번역할 때 몇 가지 힌트를 AWS AppSync 필요로 하기 때문입니다. 그렇지 않으면 테이블에서 데이터가 구조화되는 방식에 대한 몇 가지 가정을 해야 합니다.

DynamoDB 데이터 유형에 대한 자세한 내용은 DynamoDB 데이터 유형 설명자데이터 유형 설명서를 참조하세요.

DynamoDB 값은 단일 키-값 페어가 포함된 JSON 객체로 표시됩니다. 여기서 키는 DynamoDB 형식을 지정하고 값은 값 자체를 지정합니다. 다음 예에서 키 S는 값이 문자열임을 나타내고 값 identifier는 문자열 값 자체를 나타냅니다.

{ "S" : "identifier" }

JSON 객체에는 두 개 이상의 키-값 페어가 있을 수 없습니다. 키-값 페어를 두 개 이상 지정하면 요청 객체가 구문 분석되지 않습니다.

요청 객체에서 값을 지정해야 하는 모든 곳에 DynamoDB 값을 사용할 수 있습니다. 이렇게 해야 하는 위치로는 keyattributeValue 섹션과 표현식 섹션 중 expressionValues 섹션이 있습니다. 다음 예에서는 DynamoDB 문자열 값 identifierkey 섹션(GetItem 요청 객체문서)의 id 필드에 할당합니다.

"key" : { "id" : { "S" : "identifier" } }

지원되는 유형

AWS AppSync 는 다음 DynamoDB 스칼라, 문서 및 세트 유형을 지원합니다.

String 형식 S

단일 문자열 값. DynamoDB String 값은 다음과 같이 표시됩니다.

{ "S" : "some string" }

사용 예제는 다음과 같습니다.

"key" : { "id" : { "S" : "some string" } }
String set 형식 SS

문자열 값 집합. DynamoDB String Set 값은 다음과 같이 표시됩니다.

{ "SS" : [ "first value", "second value", ... ] }

사용 예제는 다음과 같습니다.

"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
Number 형식 N

단일 숫자 값. DynamoDB Number 값은 다음과 같이 표시됩니다.

{ "N" : 1234 }

사용 예제는 다음과 같습니다.

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
Number set 형식 NS

숫자 값 집합. DynamoDB Number Set 값은 다음과 같이 표시됩니다.

{ "NS" : [ 1, 2.3, 4 ... ] }

사용 예제는 다음과 같습니다.

"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
Binary 형식 B

이진 값. DynamoDB Binary 값은 다음과 같이 표시됩니다.

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

값은 실제로 문자열이며, 여기서 문자열은 바이너리 데이터의 base64 인코딩 표현입니다. 는 이 문자열을 DynamoDB로 보내기 전에 바이너리 값으로 다시 AWS AppSync 디코딩합니다. 는 RFC2045에서 정의한 base64 디코딩 체계를 AWS AppSync 사용합니다. base64 알파벳에 없는 문자는 무시됩니다. DynamoDB

사용 예제는 다음과 같습니다.

"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
Binary set 형식 BS

이진 값 집합. DynamoDB Binary Set 값은 다음과 같이 표시됩니다.

{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }

값은 실제로 문자열이며, 여기서 문자열은 바이너리 데이터의 base64 인코딩 표현입니다. 는 이 문자열을 DynamoDB로 보내기 전에 바이너리 값으로 다시 AWS AppSync 디코딩합니다. 는 RFC2045에 정의된 base64 디코딩 체계를 AWS AppSync 사용합니다. base64 알파벳에 없는 문자는 무시됩니다. DynamoDB

사용 예제는 다음과 같습니다.

"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
Boolean 형식 BOOL

부울 값. DynamoDB Boolean 값은 다음과 같이 표시됩니다.

{ "BOOL" : true }

truefalse만 유효한 값입니다.

사용 예제는 다음과 같습니다.

"attributeValues" : { "orderComplete" : { "BOOL" : false } }
List 형식 L

기타 지원되는 DynamoDB 값 목록입니다. DynamoDB List 값은 다음과 같이 표시됩니다.

{ "L" : [ ... ] }

값은 복합 값으로, 목록에는 지원되는 DynamoDB 값(다른 목록 포함)이 0개 이상 포함될 수 있습니다. 또한 목록에는 여러 형식이 혼합되어 포함될 수 있습니다.

사용 예제는 다음과 같습니다.

{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
Map 형식 M

지원되는 다른 DynamoDB 값의 키-값 페어로 구성된 순서 없는 모음을 나타냅니다. DynamoDB Map 값은 다음과 같이 표시됩니다.

{ "M" : { ... } }

맵에는 키-값 페어가 0개 이상 포함될 수 있습니다. 키는 문자열이어야 하며 값은 지원되는 모든 DynamoDB 값(다른 맵 포함)일 수 있습니다. 또한 맵에는 여러 형식이 혼합되어 포함될 수 있습니다.

사용 예제는 다음과 같습니다.

{ "M" : { "someString" : { "S" : "A string value" }, "someNumber" : { "N" : 1 }, "stringSet" : { "SS" : [ "Another string value", "Even more string values!" ] } } }
Null 형식 NULL

null 값. DynamoDB Null 값은 다음과 같이 표시됩니다.

{ "NULL" : null }

사용 예제는 다음과 같습니다.

"attributeValues" : { "phoneNumbers" : { "NULL" : null } }

각 형식에 대한 자세한 내용은 DynamoDB 문서를 참조하십시오.