기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
스캔
Scan
요청 매핑 문서를 사용하면 AWS AppSync DynamoDB 해석기에 DynamoDB에 Scan
요청하도록 지시하고 다음을 지정할 수 있습니다.
-
결과를 제외하는 필터
-
사용할 인덱스
-
반환할 항목 수
-
일관된 읽기를 사용할지 여부
-
페이지 매김 토큰입니다
-
병렬 스캔
Scan
매핑 문서의 구조는 다음과 같습니다.
{ "version" : "2017-02-28", "operation" : "Scan", "index" : "fooIndex", "limit" : 10, "consistentRead" : false, "nextToken" : "aPaginationToken", "totalSegments" : 10, "segment" : 1, "filter" : { ... }, "projection" : { ... } }
필드는 다음과 같이 정의됩니다.
Scan 필드
-
version
-
템플릿 정의 버전.
2017-02-28
및2018-05-29
만 현재 지원됩니다. 이 값은 필수입니다. -
operation
-
수행할 DynamoDB 작업입니다.
Scan
DynamoDB 작업을 수행하려면 이 값을Scan
으로 설정해야 합니다. 이 값은 필수입니다. -
filter
-
반환되기 전 DynamoDB의 결과를 필터링하는 데 사용할 수 있는 필터. 필터에 대한 자세한 내용은 필터를 참조하십시오. 이 필드는 선택 사항입니다.
-
index
-
쿼리할 인덱스의 이름. DynamoDB 쿼리 작업을 사용하면 해시 키의 프라이머리 키 인덱스 이외에 로컬 보조 인덱스 및 글로벌 보조 인덱스를 검사할 수 있습니다. 지정하면 이 값은 DynamoDB에 지정한 인덱스를 쿼리하라고 지시합니다. 이 값을 생략하면 기본 키 인덱스가 쿼리됩니다.
-
limit
-
한 번에 평가올 수 있는 최대 항목 수입니다. 이 필드는 선택 사항입니다.
-
consistentRead
-
DynamoDB 쿼리 시 일관된 읽기를 사용할지 여부를 나타내는 부울. 이 필드는 선택 사항으로, 기본값은
false
입니다. -
nextToken
-
이전 쿼리를 지속하는 페이지 매김 토큰. 이 토큰은 이전 쿼리에서 얻습니다. 이 필드는 선택 사항입니다.
-
select
-
기본적으로 AWS AppSync DynamoDB 해석기는 인덱스에 프로젝션되는 속성만 반환합니다. 추가 속성이 필요한 경우 이 필드를 설정할 수 있습니다. 이 필드는 선택 사항입니다. 지원되는 값은 다음과 같습니다.
-
ALL_ATTRIBUTES
-
지정한 테이블 또는 인덱스에서 항목 속성을 모두 반환합니다. 로컬 보조 인덱스를 쿼리하는 경우 DynamoDB는 인덱스의 일치하는 각 항목에 대해 상위 테이블의 전체 항목을 가져옵니다. 인덱스가 모든 항목 속성을 프로젝션하도록 구성된 경우, 모든 데이터를 로컬의 보조 인덱스에서 얻을 수 있기 때문에 가져올 필요가 없습니다.
-
ALL_PROJECTED_ATTRIBUTES
-
인덱스를 쿼리하는 경우에만 허용됩니다. 인덱스로 프로젝션된 모든 속성을 가져옵니다. 모든 속성을 프로젝션하도록 인덱스가 구성된 경우 이 반환 값은
ALL_ATTRIBUTES
를 지정하는 것과 동일합니다. SPECIFIC_ATTRIBUTES
-
projection
의expression
에 나열된 속성만 반환합니다. 이 반환 값은Select
에 대한 값을 지정하지 않고projection
의expression
을 지정하는 것과 같습니다.
-
-
totalSegments
-
병렬 스캔을 수행할 때 테이블을 분할할 기준이 될 세그먼트 수. 이 필드는 선택 사항이지만
segment
가 지정된 경우에는 반드시 지정해야 합니다. -
segment
-
병렬 스캔을 수행할 때 작업의 테이블 세그먼트. 이 필드는 선택 사항이지만
totalSegments
가 지정된 경우에는 반드시 지정해야 합니다. projection
-
DynamoDB 작업에서 반환할 속성을 지정하는 데 사용되는 프로젝션입니다. 프로젝션에 대한 자세한 내용은 프로젝션을 참조하세요. 이 필드는 선택 사항입니다.
DynamoDB 스캔에서 반환하는 결과는 자동으로 GraphQL 및 JSON 기본 형식으로 변환되며 매핑 컨텍스트($context.result
)에서 사용할 수 있습니다.
DynamoDB 형식 변환에 대한 자세한 내용은 형식 시스템(응답 매핑)을 참조하세요.
응답 매핑 템플릿에 대한 자세한 내용은 해석기 매핑 템플릿 개요를 참조하세요.
결과의 구조는 다음과 같습니다.
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }
필드는 다음과 같이 정의됩니다.
-
items
-
DynamoDB 스캔에서 반환하는 항목이 포함된 목록
-
nextToken
-
결과가 더 있을 수 있는 경우 에는 다른 요청에 사용할 수 있는 페이지 매김 토큰이
nextToken
포함되어 있습니다. AWS AppSync는 DynamoDB에서 반환된 페이지 매김 토큰을 암호화하고 난독화합니다. 따라서 테이블 데이터가 호출자에게 실수로 유출되는 일이 없습니다. 또한 페이지 매김 토큰은 여러 해석기 간에 사용할 수 없습니다. -
scannedCount
-
필터 표현식(있는 경우)을 적용하기 전에 DynamoDB에서 검색한 항목 수.
예시 1
다음 예제는 GraphQL 쿼리 allPosts
의 매핑 템플릿입니다.
이 예에서는 테이블의 항목을 모두 반환합니다.
{ "version" : "2017-02-28", "operation" : "Scan" }
예시 2
다음 예제는 GraphQL 쿼리 postsMatching(title: String!)
의 매핑 템플릿입니다.
이 예에서는 제목이 title
인수로 시작하는 경우 테이블의 모든 항목이 반환됩니다.
{ "version" : "2017-02-28", "operation" : "Scan", "filter" : { "expression" : "begins_with(title, :title)", "expressionValues" : { ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title) }, } }
DynamoDB Scan
API에 대한 자세한 내용은 DynamoDB API 문서를 참조하십시오.