기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
형식 시스템(요청 매핑)
AWS AppSync DynamoDB 함수를 사용하여 DynamoDB 테이블을 호출할 때 AWS AppSync 는 해당 호출에 사용할 각 값의 유형을 알아야 합니다. 이는 DynamoDB가 GraphQL 또는 JSON (예: 세트 및 바이너리 데이터)보다 더 많은 유형의 프리미티브를 지원하기 때문입니다. 는 GraphQL과 DynamoDB 간에 번역할 때 몇 가지 힌트를 AWS AppSync 필요로 하기 때문입니다. 그렇지 않으면 테이블에서 데이터가 구조화되는 방식에 대한 몇 가지 가정을 해야 합니다.
DynamoDB 데이터 유형에 대한 자세한 내용은 DynamoDB 데이터 유형 설명자 및 데이터 유형 설명서를 참조하세요.
DynamoDB 값은 단일 키-값 페어가 포함된 JSON 객체로 표시됩니다. 여기서 키는 DynamoDB 형식을 지정하고 값은 값 자체를 지정합니다. 다음 예에서 키 S
는 값이 문자열임을 나타내고 값 identifier
는 문자열 값 자체를 나타냅니다.
{ "S" : "identifier" }
JSON 객체에는 두 개 이상의 키-값 페어가 있을 수 없습니다. 키-값 페어를 두 개 이상 지정하면 요청 객체가 구문 분석되지 않습니다.
요청 객체에서 값을 지정해야 하는 모든 곳에 DynamoDB 값을 사용할 수 있습니다. 이렇게 해야 하는 위치로는 key
및 attributeValue
섹션과 표현식 섹션 중 expressionValues
섹션이 있습니다. 다음 예에서는 DynamoDB 문자열 값 identifier
를 key
섹션(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 }
true
및false
만 유효한 값입니다.사용 예제는 다음과 같습니다.
"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 문서를 참조하십시오.