PutItem - Amazon DynamoDB

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

PutItem

중요

이 단원에서 언급되는 API 버전 2011-12-05는 사용 중단되었으며 새 애플리케이션에 사용해서는 안 됩니다.

현재 하위 수준 API에 대한 설명서는 Amazon DynamoDB API 참조 섹션을 참조하세요.

설명

새 항목을 만들거나 이전 항목을 새 항목으로 바꿉니다(모든 속성 포함). 지정된 테이블에 동일한 기본 키를 지닌 항목이 이미 존재하는 경우 기존 항목이 새 항목으로 완전히 바뀝니다. 조건부 입력을 수행하거나(기본 키가 지정된 항목이 없는 경우 새 항목을 삽입합니다) 기존 항목에 특정 속성 값이 있는 경우 해당 항목을 교체할 수 있습니다.

속성 값은 null이 될 수 없습니다. 문자열과 이진 형식 속성 길이는 0보다 커야 합니다. 설정 유형 속성은 비어 있으면 안 됩니다. 값이 비어 있는 요청은 ValidationException으로 거부됩니다.

참고

새 항목이 기존의 항목을 대체하지 않도록 하려면 기본 키 속성 또는 속성에 대해 Exists로 설정된 false을 사용하여 조건부 입력 작업을 수행합니다.

PutItem 사용에 관한 자세한 내용은 항목 및 속성 작업 단원을 참조하세요.

요청

구문

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 하위 수준 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Item":{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"N":"AttributeValue2"}, "AttributeName5":{"B":"dmFsdWU="} }, "Expected":{"AttributeName3":{"Value": {"S":"AttributeValue"}, "Exists":Boolean}}, "ReturnValues":"ReturnValuesConstant"}
이름 설명 필수
TableName

항목을 저장하기 위한 테이블의 이름.

유형: String

Item

항목에 대한 속성 맵으로서 항목을 정의하는 기본 키 값이 반드시 포함되어야 합니다. 항목에 대한 다른 속성 이름-값 페어가 제공될 수 있습니다. 기본 키에 대한 자세한 내용은 프라이머리 키 단원을 참조하세요.

형식: 속성 값에 대한 속성 이름의 맵.

Expected

조건부 입력의 속성을 지정합니다. Expected 파라미터를 사용하면 속성 이름뿐만 아니라, DynamoDB에서 속성 값이 이미 존재하는지 또는 속성 값이 존재하며 이를 변경하기 전에 특정 값이 있는지 확인해야 하는지 여부를 제공할 수 있습니다.

형식: 존재하는 경우, 속성 값에 대한 속성 이름의 맵.

아니요
Expected:AttributeName

조건부 입력에 대한 속성 이름입니다.

유형: String

아니요
Expected:AttributeName: ExpectedAttributeValue 이 파라미터를 사용하여 속성 이름-값 페어의 값이 존재할지 여부를 지정합니다.

다음 JSON 표기법은 항목의 "Color" 속성이 없을 경우 해당 항목을 바꿉니다.

"Expected" : {"Color":{"Exists":false}}

다음 JSON 표기법은 항목을 바꾸기 전에 이름이 "Color"인 속성의 기존 값이 "Yellow"인지 여부를 확인합니다.

"Expected" : {"Color":{"Exists":true,{"Value":{"S":"Yellow"}}}

기본적으로 Expected 파라미터를 사용하고 Value를 제공하는 경우 DynamoDB는 속성이 존재하고 바꿀 현재 값이 있는 것으로 가정합니다. 따라서 {"Exists":true}가 내재되어 있으므로 지정하지 않아도 됩니다. 요청을 다음과 같이 줄일 수 있습니다.

"Expected" : {"Color":{"Value":{"S":"Yellow"}}}
참고

확인할 속성 값이 없을 때 {"Exists":true}를 지정하면 DynamoDB는 오류를 반환합니다.

아니요
ReturnValues

속성 이름-값 페어가 PutItem 요청으로 업데이트되기 전에 이를 가져오려면 이 파라미터를 사용합니다. 가능한 파라미터 값은 NONE(기본) 또는 ALL_OLD입니다. ALL_OLD가 지정되어 있으며 PutItem이 속성 이름-값 페어를 덮어쓴 경우, 이전 항목의 내용이 반환됩니다. 이 파라미터가 제공되지 않거나 NONE인 경우, 아무 것도 반환되지 않습니다.

유형: String

아니요

응답

구문

다음 구문 예는 요청에 ALL_OLDReturnValues 파라미터가 지정되어 있다고 가정합니다. 그렇지 않을 경우 응답에는 ConsumedCapacityUnits 요소만 있습니다.

HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 85 {"Attributes": {"AttributeName3":{"S":"AttributeValue3"}, "AttributeName2":{"SS":"AttributeValue2"}, "AttributeName1":{"SS":"AttributeValue1"}, }, "ConsumedCapacityUnits":1 }
이름 설명
Attributes

입력 작업 전 속성 값입니다. 단 ReturnValues 파라미터가 요청에서 ALL_OLD 값으로 지정된 경우만 해당됩니다.

형식: 속성 이름-값 페어의 맵

ConsumedCapacityUnits

작업에서 사용한 쓰기 용량 단위의 수입니다. 이 값은 할당 처리량에 적용되는 수를 나타냅니다. 자세한 내용은 DynamoDB 프로비저닝된 용량 테이블의 설정 관리 단원을 참조하세요.

형식: 숫자

특수 오류

오류 설명
ConditionalCheckFailedException 조건부 확인이 실패했습니다. 예상 속성 값이 검색되지 않았습니다.
ResourceNotFoundException 지정된 항목 또는 속성을 찾을 수 없습니다.

예시

AWS SDK를 사용하는 예는 항목 및 속성 작업 단원을 참조하세요.

샘플 요청

// This header is abbreviated. For a sample of a complete header, see DynamoDB 하위 수준 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.PutItem content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Item": {"time":{"N":"300"}, "feeling":{"S":"not surprised"}, "user":{"S":"Riley"} }, "Expected": {"feeling":{"Value":{"S":"surprised"},"Exists":true}} "ReturnValues":"ALL_OLD" }

샘플 응답

HTTP/1.1 200 x-amzn-RequestId: 8952fa74-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 84 {"Attributes": {"feeling":{"S":"surprised"}, "time":{"N":"300"}, "user":{"S":"Riley"}}, "ConsumedCapacityUnits":1 }