기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PutItem
PutItem
요청 매핑 문서를 사용하면 AWS AppSync DynamoDB 해석기에 DynamoDB 에 PutItem
요청하도록 지시하고 다음을 지정할 수 있습니다.
-
DynamoDB의 항목 키
-
항목의 전체 내용(
key
및attributeValues
로 구성됨) -
성공할 작업의 조건
PutItem
매핑 문서의 구조는 다음과 같습니다.
{ "version" : "2018-05-29", "operation" : "PutItem", "customPartitionKey" : "foo", "populateIndexFields" : boolean value, "key": { "foo" : ... typed value, "bar" : ... typed value }, "attributeValues" : { "baz" : ... typed value }, "condition" : { ... }, "_version" : 1 }
필드는 다음과 같이 정의됩니다.
PutItem 필드
-
version
-
템플릿 정의 버전.
2017-02-28
및2018-05-29
만 현재 지원됩니다. 이 값은 필수입니다. -
operation
-
수행할 DynamoDB 작업입니다.
PutItem
DynamoDB 작업을 수행하려면 이 값을PutItem
으로 설정해야 합니다. 이 값은 필수입니다. -
key
-
DynamoDB의 항목 키입니다. DynamoDB 항목은 테이블 구조에 따라 단일 해시 키 또는 해시 키와 정렬 키를 가질 수 있습니다. '입력된 값'을 지정하는 방법에 대한 자세한 내용은 유형 시스템(요청 매핑)을 참조하세요. 이 값은 필수입니다.
-
attributeValues
-
DynamoDB에 저장할 항목의 나머지 속성. '입력된 값'을 지정하는 방법에 대한 자세한 내용은 유형 시스템(요청 매핑)을 참조하세요. 이 필드는 선택 사항입니다.
-
condition
-
DynamoDB에 이미 있는 객체의 상태를 기반으로 요청의 성공 여부를 결정하는 조건. 조건을 지정하지 않으면
PutItem
요청이 해당 항목에 대한 기존 입력을 덮어씁니다. 조건에 대한 자세한 내용은 조건 표현식을 참조하세요. 이 값은 선택 사항입니다. -
_version
-
항목의 알려진 최신 버전을 나타내는 숫자 값입니다. 이 값은 선택 사항입니다. 이 필드는 충돌 감지에 사용되며 버전이 지정된 데이터 원본에만 지원됩니다.
customPartitionKey
-
이 문자열 값을 활성화하면 버전 관리가 활성화되었을 때 델타 동기화 테이블에서 사용하는
ds_sk
및ds_pk
레코드의 형식을 수정합니다(자세한 내용은 AWS AppSync 개발자 안내서의 충돌 감지 및 동기화 참조). 활성화되면populateIndexFields
항목 처리도 활성화됩니다. 이 필드는 선택 사항입니다. populateIndexFields
-
customPartitionKey
와 함께 활성화되면 델타 동기화 테이블, 특히gsi_ds_pk
및gsi_ds_sk
열의 각 레코드에 대해 새 항목을 생성하는 부울 값입니다. 자세한 내용은 AWS AppSync 개발자 안내서의 충돌 감지 및 동기화를 참조하세요. 이 필드는 선택 사항입니다.
DynamoDB에 기록된 항목은 자동으로 GraphQL 및 JSON 기본 유형으로 변환되며 매핑 컨텍스트()에서 사용할 수 있습니다$context.result
.
DynamoDB 형식 변환에 대한 자세한 내용은 형식 시스템(응답 매핑)을 참조하세요.
응답 매핑 템플릿에 대한 자세한 내용은 해석기 매핑 템플릿 개요를 참조하세요.
예 1
다음 예제는 GraphQL 변형 updateThing(foo: String!, bar: String!, name: String!, version:
Int!)
의 매핑 템플릿입니다.
지정된 키가 있는 항목이 없으면 생성됩니다. 지정된 키가 있는 항목이 있으면 덮어씁니다.
{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "foo" : $util.dynamodb.toDynamoDBJson($ctx.args.foo), "bar" : $util.dynamodb.toDynamoDBJson($ctx.args.bar) }, "attributeValues" : { "name" : $util.dynamodb.toDynamoDBJson($ctx.args.name), "version" : $util.dynamodb.toDynamoDBJson($ctx.args.version) } }
예제 2
다음 예제는 GraphQL 변형 updateThing(foo: String!, bar: String!, name: String!, expectedVersion:
Int!)
의 매핑 템플릿입니다.
이 예에서는 현재 DynamoDB에 있는 항목의 version
필드가 expectedVersion
으로 설정되어 있는지 확인합니다.
{ "version" : "2017-02-28", "operation" : "PutItem", "key": { "foo" : $util.dynamodb.toDynamoDBJson($ctx.args.foo), "bar" : $util.dynamodb.toDynamoDBJson($ctx.args.bar) }, "attributeValues" : { "name" : $util.dynamodb.toDynamoDBJson($ctx.args.name), #set( $newVersion = $context.arguments.expectedVersion + 1 ) "version" : $util.dynamodb.toDynamoDBJson($newVersion) }, "condition" : { "expression" : "version = :expectedVersion", "expressionValues" : { ":expectedVersion" : $util.dynamodb.toDynamoDBJson($expectedVersion) } } }
DynamoDB 에 대한 자세한 내용은 DynamoDB API 설명서 섹션을 PutItem
API참조하세요.