BatchDeleteItem - AWS AppSync

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

BatchDeleteItem

BatchDeleteItem 요청 매핑 문서를 사용하면 AWS AppSync DynamoDB 해석기에 DynamoDB에 잠재적으로 여러 테이블에서 여러 항목을 삭제하도록 BatchWriteItem 요청하도록 지시할 수 있습니다. 이 요청 템플릿에 대해 다음을 지정해야 합니다.

  • 항목을 삭제할 테이블 이름

  • 각 테이블에서 삭제할 항목의 키

DynamoDB BatchWriteItem 한도가 적용되고 표현식 없음이 제공될 수 있습니다.

BatchDeleteItem 매핑 문서의 구조는 다음과 같습니다.

{ "version" : "2018-05-29", "operation" : "BatchDeleteItem", "tables" : { "table1": [ ## Item to delete Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item2 to delete Key { "foo" : ... typed value, "bar" : ... typed value }], "table2": [ ## Item3 to delete Key { "foo" : ... typed value, "bar" : ... typed value }, ## Item4 to delete Key { "foo" : ... typed value, "bar" : ... typed value }], } }

필드는 다음과 같이 정의됩니다.

BatchDeleteItem 필드

version

템플릿 정의 버전. 2018-05-29만 지원됩니다. 이 값은 필수입니다.

operation

수행할 DynamoDB 작업입니다. BatchDeleteItem DynamoDB 작업을 수행하려면 이 값을 BatchDeleteItem으로 설정해야 합니다. 이 값은 필수입니다.

tables

항목을 삭제할 DynamoDB 테이블입니다. 각 테이블은 삭제할 항목의 프라이머리 키를 나타내는 DynamoDB 키 목록입니다. DynamoDB 항목은 테이블 구조에 따라 단일 해시 키 또는 해시 키와 정렬 키를 가질 수 있습니다. '입력된 값'을 지정하는 방법에 대한 자세한 내용은 유형 시스템(요청 매핑)을 참조하세요. 테이블이 하나 이상 제공되어야 합니다. tables 값이 필요합니다.

기억해야 할 내용:

  • DeleteItem 작업과 달리 완전히 삭제된 항목은 응답에서 반환되지 않습니다. 전달된 키만 반환됩니다.

  • 테이블에서 항목을 삭제하지 못하면 해당 테이블의 데이터 블록에 null 요소가 나타납니다.

  • 호출 결과는 요청 매핑 템플릿 내에 제공된 순서에 따라 테이블별로 정렬됩니다.

  • BatchDeleteItem 내부의 각 Delete 명령은 원자성입니다. 그러나 배치는 부분적으로 처리될 수 있습니다. 오류로 인해 배치가 부분적으로 처리되는 경우 처리되지 않은 키는 unprocessedKeys 블록 내 호출 결과의 일부로 반환됩니다.

  • BatchDeleteItem은 25개의 키로 제한됩니다.

  • 충돌 감지와 함께 사용하는 경우 이 작업은 지원되지 않습니다. 두 가지를 동시에 사용하면 오류가 발생할 수 있습니다.

다음과 같은 요청 매핑 템플릿 예제가 있습니다.

{ "version": "2018-05-29", "operation": "BatchDeleteItem", "tables": { "authors": [ { "author_id": { "S": "a1" } }, ], "posts": [ { "author_id": { "S": "a1" }, "post_id": { "S": "p2" } } ], } }

$ctx.result에서 사용할 수 있는 호출 결과는 다음과 같습니다.

{ "data": { "authors": [null], "posts": [ # Was deleted { "author_id": "a1", "post_id": "p2" } ] }, "unprocessedKeys": { "authors": [ # This key was not processed due to an error { "author_id": "a1" } ], "posts": [] } }

$ctx.error에는 오류에 대한 세부 정보가 포함됩니다. 요청 매핑 템플릿에 제공된 키 데이터 unprocessedKeys, 및 각 테이블 키는 호출 결과에 존재하도록 보장됩니다. 삭제된 항목은 데이터 블록에 나타납니다. 처리되지 않은 항목은 데이터 블록 내에 null로 표시되고 unprocessedKeys 블록 내에 배치됩니다.

더 완전한 예제를 보려면 AppSync 여기 자습서: DynamoDB 배치 해석기 를 사용하여 DynamoDB 배치 자습서를 따르세요.