기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
BatchGetItem
BatchGetItem
요청 객체를 사용하면 AWS AppSync DynamoDB 함수에 DynamoDB에 요청BatchGetItem
하여 여러 테이블에서 여러 항목을 검색하도록 지시할 수 있습니다. 이 요청 객체에 대해 다음을 지정해야 합니다.
-
항목을 가져올 테이블 이름
-
각 테이블에서 가져올 항목의 키
DynamoDB BatchGetItem
한도가 적용되고 표현식 없음이 제공될 수 있습니다.
BatchGetItem
요청 객체는 다음과 같은 구조입니다.
type DynamoDBBatchGetItemRequest = { operation: 'BatchGetItem'; tables: { [tableName: string]: { keys: { [key: string]: any }[]; consistentRead?: boolean; projection?: { expression: string; expressionNames?: { [key: string]: string }; }; }; }; };
필드는 다음과 같이 정의됩니다.
BatchGetItem 필드
-
operation
-
수행할 DynamoDB 작업입니다.
BatchGetItem
DynamoDB 작업을 수행하려면 이 값을BatchGetItem
으로 설정해야 합니다. 이 값은 필수입니다. -
tables
-
항목을 가져올 DynamoDB 테이블입니다. 이 값은 테이블 이름이 맵의 키로 지정되는 맵입니다. 테이블이 하나 이상 제공되어야 합니다. 이
tables
값은 필수입니다.-
keys
-
검색할 항목의 프라이머리 키를 나타내는 DynamoDB 키 목록입니다. DynamoDB 항목은 테이블 구조에 따라 단일 해시 키 또는 해시 키와 정렬 키를 가질 수 있습니다. '입력된 값'을 지정하는 방법에 대한 자세한 내용은 유형 시스템(요청 매핑)을 참조하세요.
-
consistentRead
-
GetItem 작업을 실행할 때 일관된 읽기를 사용할지 여부입니다. 이 값은 선택 사항으로, 기본값은 false입니다.
projection
-
DynamoDB 작업에서 반환할 속성을 지정하는 데 사용되는 프로젝션입니다. 프로젝션에 대한 자세한 내용은 프로젝션을 참조하세요. 이 필드는 선택 사항입니다.
-
기억해야 할 내용:
-
테이블에서 항목을 가져오지 못하면 해당 테이블의 데이터 블록에 null 요소가 나타납니다.
-
호출 결과는 요청 객체 내에 제공된 순서에 따라 테이블별로 정렬됩니다.
-
BatchGetItem
내부의 각Get
명령은 원자성이지만 배치는 부분적으로 처리될 수 있습니다. 오류로 인해 배치가 부분적으로 처리되는 경우 처리되지 않은 키는 unprocessedKeys 블록 내 호출 결과의 일부로 반환됩니다. -
BatchGetItem
은 100개의 키로 제한됩니다.
다음은 함수 요청 핸들러 예시입니다.
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'BatchGetItem', tables: { authors: [util.dynamodb.toMapValues({ authorId })], posts: [util.dynamodb.toMapValues({ authorId, postId })], }, }; }
ctx.result
에서 사용할 수 있는 호출 결과는 다음과 같습니다.
{ "data": { "authors": [null], "posts": [ // Was retrieved { "authorId": "a1", "postId": "p2", "postTitle": "title", "postDescription": "description", } ] }, "unprocessedKeys": { "authors": [ // This item was not processed due to an error { "authorId": "a1" } ], "posts": [] } }
ctx.error
에는 오류에 대한 세부 정보가 포함됩니다. 함수 요청 객체의 결과에 제공된 키 데이터 unprocessedKeys, 및 각 테이블 키는 호출 결과에 존재하도록 보장됩니다. 삭제된 항목은 데이터 블록에 나타납니다. 처리되지 않은 항목은 데이터 블록 내에 null로 표시되고 unprocessedKeys 블록 내에 배치됩니다.