Trong bước này chúng ta sẽ quét toàn bộ dữ liệu trong bảng của DynamoDB.
allPost(count: Int, nextToken: String): PaginatedPosts!
type PaginatedPosts {
posts: [Post!]!
nextToken: String
}


{
"version" : "2017-02-28",
"operation" : "Scan"
#if( ${context.arguments.count} )
,"limit": $util.toJson($context.arguments.count)
#end
#if( ${context.arguments.nextToken} )
,"nextToken": $util.toJson($context.arguments.nextToken)
#end
}
Resolver này có 2 đối số đầu vào là count - chỉ định số lượng mục tối đa sẽ trả về trong một lệnh gọi và nextToken - có thể sử dụng để truy xuất kết quả tiếp theo.
#if($context.error)
$util.error($context.error.message, $context.error.type)
#end
{
"posts": $utils.toJson($context.result.items)
#if( ${context.result.nextToken} )
,"nextToken": $util.toJson($context.result.nextToken)
#end
}
Kết quả truy vấn trả về là một PaginatedPosts, chứa danh sách các bài đăng và pagination token. Shape của đối tượng này khác với những gì được trả về từ AWS AppSync DynamoDB Resolver.

mutation addPost {
post1: addPost(id:"1" author: "AUTHORNAME" title: "A series of posts, Volume 1" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post2: addPost(id:"2" author: "AUTHORNAME" title: "A series of posts, Volume 2" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post3: addPost(id:"3" author: "AUTHORNAME" title: "A series of posts, Volume 3" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post4: addPost(id:"4" author: "AUTHORNAME" title: "A series of posts, Volume 4" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post5: addPost(id:"5" author: "AUTHORNAME" title: "A series of posts, Volume 5" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post6: addPost(id:"6" author: "AUTHORNAME" title: "A series of posts, Volume 6" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post7: addPost(id:"7" author: "AUTHORNAME" title: "A series of posts, Volume 7" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post8: addPost(id:"8" author: "AUTHORNAME" title: "A series of posts, Volume 8" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
post9: addPost(id:"9" author: "AUTHORNAME" title: "A series of posts, Volume 9" content: "Some content" url: "https://aws.amazon.com/appsync/" ) { title }
}
query scanTable {
allPost(count: 3) {
posts {
id
title
author
}
nextToken
}
}

nextToken để lấy các trang tiếp theo.
Sao chép giá trị của trường nextToken được trả về (đây là một đoạn mã chuỗi dài).
Thêm trường nextToken vào câu lệnh truy vấn allPost, sau đó gán chuỗi giá trị mà bạn vừa sao chép cho nó:
query scanTable {
allPost(count: 3, nextToken: "GIÁ_TRỊ_BẠN_VỪA_SAO_CHÉP") {
posts {
id
title
author
}
nextToken
}
}


Vậy là bạn đã quét toàn bộ bảng mỗi lần trả về số lượng mà bạn mong muốn.