이 설명서는 의 버전 1 AWS CLI 전용입니다. 의 버전 2와 관련된 설명서는 버전 2 사용 설명서 를 AWS CLI참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용한 DynamoDB 예제 AWS CLI
다음 코드 예제에서는 DynamoDB와 AWS Command Line Interface 함께 를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.
주제
작업
다음 코드 예시에서는 batch-get-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블에서 여러 항목을 검색하는 방법
다음
batch-get-items
예시에서는GetItem
요청 3개의 배치를 사용하여MusicCollection
테이블에서 여러 항목을 읽고 작업에 사용된 읽기 용량 단위 수를 요청합니다. 이 명령은AlbumTitle
속성만 반환합니다.aws dynamodb batch-get-item \ --request-items
file://request-items.json
\ --return-consumed-capacityTOTAL
request-items.json
의 콘텐츠:{ "MusicCollection": { "Keys": [ { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"} }, { "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }, { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Scared of My Shadow"} } ], "ProjectionExpression":"AlbumTitle" } }
출력:
{ "Responses": { "MusicCollection": [ { "AlbumTitle": { "S": "Somewhat Famous" } }, { "AlbumTitle": { "S": "Blue Sky Blues" } }, { "AlbumTitle": { "S": "Louder Than Ever" } } ] }, "UnprocessedKeys": {}, "ConsumedCapacity": [ { "TableName": "MusicCollection", "CapacityUnits": 1.5 } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 배치 작업을 참조하세요.
-
자세한 API 내용은 명령 참조BatchGetItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 batch-write-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블에 여러 항목을 추가하는 방법
다음
batch-write-item
예시에서는PutItem
요청 3개의 배치를 사용하여MusicCollection
테이블에 새 항목 3개를 추가합니다. 또한 작업에 사용된 쓰기 용량 단위 수와 작업에서 수정된 모든 항목 모음에 대한 정보도 요청합니다.aws dynamodb batch-write-item \ --request-items
file://request-items.json
\ --return-consumed-capacityINDEXES
\ --return-item-collection-metricsSIZE
request-items.json
의 콘텐츠:{ "MusicCollection": [ { "PutRequest": { "Item": { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"} } } }, { "PutRequest": { "Item": { "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"}, "AlbumTitle": {"S": "Songs About Life"} } } }, { "PutRequest": { "Item": { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Scared of My Shadow"}, "AlbumTitle": {"S": "Blue Sky Blues"} } } } ] }
출력:
{ "UnprocessedItems": {}, "ItemCollectionMetrics": { "MusicCollection": [ { "ItemCollectionKey": { "Artist": { "S": "No One You Know" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] }, { "ItemCollectionKey": { "Artist": { "S": "Acme Band" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] } ] }, "ConsumedCapacity": [ { "TableName": "MusicCollection", "CapacityUnits": 6.0, "Table": { "CapacityUnits": 3.0 }, "LocalSecondaryIndexes": { "AlbumTitleIndex": { "CapacityUnits": 3.0 } } } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 배치 작업을 참조하세요.
-
자세한 API 내용은 명령 참조BatchWriteItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-backup
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
기존 DynamoDB 테이블에 대한 백업을 생성하려면
다음
create-backup
예제에서는MusicCollection
테이블의 백업을 생성합니다.aws dynamodb create-backup \ --table-name
MusicCollection
\ --backup-nameMusicCollectionBackup
출력:
{ "BackupDetails": { "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", "BackupName": "MusicCollectionBackup", "BackupSizeBytes": 0, "BackupStatus": "CREATING", "BackupType": "USER", "BackupCreationDateTime": 1576616366.715 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조CreateBackup
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-global-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
글로벌 테이블을 생성하려면
다음
create-global-table
예제에서는 지정된 별도의 AWS 리전에 있는 두 개의 동일한 테이블에서 전역 테이블을 생성합니다.aws dynamodb create-global-table \ --global-table-name
MusicCollection
\ --replication-groupRegionName=us-east-2
RegionName=us-east-1
\ --regionus-east-2
출력:
{ "GlobalTableDescription": { "ReplicationGroup": [ { "RegionName": "us-east-2" }, { "RegionName": "us-east-1" } ], "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", "CreationDateTime": 1576625818.532, "GlobalTableStatus": "CREATING", "GlobalTableName": "MusicCollection" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조CreateGlobalTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 create-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 태그가 포함된 테이블을 생성하는 방법
다음
create-table
예시에서는 지정된 속성과 키 스키마를 사용하여 이름이MusicCollection
인 테이블을 생성합니다. 이 테이블은 프로비저닝된 처리량을 사용하며 기본 AWS 소유 를 사용하여 저장 시 암호화됩니다CMK. 이 명령은 또한 키가Owner
이고 값이blueTeam
인 태그를 테이블에 적용합니다.aws dynamodb create-table \ --table-name
MusicCollection
\ --attribute-definitionsAttributeName=Artist,AttributeType=S
AttributeName=SongTitle,AttributeType=S
\ --key-schemaAttributeName=Artist,KeyType=HASH
AttributeName=SongTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=5,WriteCapacityUnits=5
\ --tagsKey=Owner,Value=blueTeam
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 5 }, "TableSizeBytes": 0, "TableName": "MusicCollection", "TableStatus": "CREATING", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": "2020-05-26T16:04:41.627000-07:00", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 2: 온디맨드 모드에서 테이블을 생성하는 방법
다음 예시에서는 프로비저닝된 처리량 모드가 아닌 온디맨드 모드를 사용하여 이름이
MusicCollection
인 테이블을 생성합니다. 이는 예상치 못한 워크로드가 있는 테이블에 유용합니다.aws dynamodb create-table \ --table-name
MusicCollection
\ --attribute-definitionsAttributeName=Artist,AttributeType=S
AttributeName=SongTitle,AttributeType=S
\ --key-schemaAttributeName=Artist,KeyType=HASH
AttributeName=SongTitle,KeyType=RANGE
\ --billing-modePAY_PER_REQUEST
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-05-27T11:44:10.807000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 0, "WriteCapacityUnits": 0 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예제 3: 테이블을 생성하고 Customer Managed로 암호화하려면 CMK
다음 예제에서는 라는 테이블을 생성하고 고객 관리형
MusicCollection
를 사용하여 암호화합니다CMK.aws dynamodb create-table \ --table-name
MusicCollection
\ --attribute-definitionsAttributeName=Artist,AttributeType=S
AttributeName=SongTitle,AttributeType=S
\ --key-schemaAttributeName=Artist,KeyType=HASH
AttributeName=SongTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=5,WriteCapacityUnits=5
\ --sse-specificationEnabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-05-27T11:12:16.431000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "SSEDescription": { "Status": "ENABLED", "SSEType": "KMS", "KMSMasterKeyArn": "arn:aws:kms:us-west-2:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 4: 로컬 보조 인덱스가 있는 테이블을 생성하는 방법
다음
MusicCollection
예시에서는 지정된 속성과 키 스키마를 사용하여 이름이AlbumTitleIndex
인 로컬 보조 인덱스가 있는 이라는 테이블을 생성합니다.aws dynamodb create-table \ --table-name
MusicCollection
\ --attribute-definitionsAttributeName=Artist,AttributeType=S
AttributeName=SongTitle,AttributeType=S
AttributeName=AlbumTitle,AttributeType=S
\ --key-schemaAttributeName=Artist,KeyType=HASH
AttributeName=SongTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --local-secondary-indexes \ "[ { \"IndexName\": \"AlbumTitleIndex\", \"KeySchema\": [ {\"AttributeName\": \"Artist\",\"KeyType\":\"HASH\"}, {\"AttributeName\": \"AlbumTitle\",\"KeyType\":\"RANGE\"} ], \"Projection\": { \"ProjectionType\": \"INCLUDE\", \"NonKeyAttributes\": [\"Genre\", \"Year\"] } } ]"출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "AlbumTitle", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "LocalSecondaryIndexes": [ { "IndexName": "AlbumTitleIndex", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "AlbumTitle", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "Genre", "Year" ] }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 5: 글로벌 보조 인덱스가 있는 테이블을 생성하는 방법
다음 예시에서는 이름이
GameTitleIndex
인 글로벌 보조 인덱스가 있는GameScores
라는 테이블을 생성합니다. 기본 테이블에는 의 파티션 키UserId
와 의 정렬 키가GameTitle
있어 특정 게임에 대한 개별 사용자의 최고 점수를 효율적으로 찾을 수 있는 반면, GSI에는 의 파티션 키GameTitle
와 의 정렬 키가TopScore
있어 특정 게임에 대한 전체 최고 점수를 빠르게 찾을 수 있습니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
AttributeName=TopScore,AttributeType=N
\ --key-schemaAttributeName=UserId,KeyType=HASH
\AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --global-secondary-indexes \ "[ { \"IndexName\": \"GameTitleIndex\", \"KeySchema\": [ {\"AttributeName\":\"GameTitle\",\"KeyType\":\"HASH\"}, {\"AttributeName\":\"TopScore\",\"KeyType\":\"RANGE\"} ], \"Projection\": { \"ProjectionType\":\"INCLUDE\", \"NonKeyAttributes\":[\"UserId\"] }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": 10, \"WriteCapacityUnits\": 5 } } ]"출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "TopScore", "AttributeType": "N" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-05-26T17:28:15.602000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "GlobalSecondaryIndexes": [ { "IndexName": "GameTitleIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "TopScore", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "UserId" ] }, "IndexStatus": "CREATING", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameTitleIndex" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 6: 글로벌 보조 인덱스가 있는 테이블 여러 개를 한 번에 생성하는 방법
다음 예시에서는 두 개의 글로벌 보조 인덱스가 있는
GameScores
라는 테이블을 생성합니다. GSI 스키마는 명령줄이 아닌 파일을 통해 전달됩니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
AttributeName=TopScore,AttributeType=N
AttributeName=Date,AttributeType=S
\ --key-schemaAttributeName=UserId,KeyType=HASH
AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --global-secondary-indexesfile://gsi.json
gsi.json
의 콘텐츠:[ { "IndexName": "GameTitleIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "TopScore", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "ALL" }, "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 } }, { "IndexName": "GameDateIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "Date", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "ALL" }, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } ]
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Date", "AttributeType": "S" }, { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "TopScore", "AttributeType": "N" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-08-04T16:40:55.524000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "GlobalSecondaryIndexes": [ { "IndexName": "GameTitleIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "TopScore", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "ALL" }, "IndexStatus": "CREATING", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameTitleIndex" }, { "IndexName": "GameDateIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "Date", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "ALL" }, "IndexStatus": "CREATING", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/GameDateIndex" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 7: Streams가 활성화된 테이블을 생성하는 방법
다음 예시에서는 DynamoDB Streams가 활성화된
GameScores
라는 테이블을 생성합니다. 각 항목의 새 이미지와 이전 이미지가 모두 스트림에 작성됩니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
\ --key-schemaAttributeName=UserId,KeyType=HASH
AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --stream-specificationStreamEnabled=TRUE,StreamViewType=NEW_AND_OLD_IMAGES
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2020-05-27T10:49:34.056000-07:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "StreamSpecification": { "StreamEnabled": true, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "LatestStreamLabel": "2020-05-27T17:49:34.056", "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/2020-05-27T17:49:34.056" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 기본 작업을 참조하세요.
예 8: Keys-Only Stream이 활성화된 테이블을 생성하는 방법
다음 예시에서는 DynamoDB Streams가 활성화된
GameScores
라는 테이블을 생성합니다. 수정된 항목의 키 속성만 스트림에 작성됩니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
\ --key-schemaAttributeName=UserId,KeyType=HASH
AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --stream-specificationStreamEnabled=TRUE,StreamViewType=KEYS_ONLY
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2023-05-25T18:45:34.140000+00:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "StreamSpecification": { "StreamEnabled": true, "StreamViewType": "KEYS_ONLY" }, "LatestStreamLabel": "2023-05-25T18:45:34.140", "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/2023-05-25T18:45:34.140", "DeletionProtectionEnabled": false } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB Streams에 대한 변경 데이터 캡처를 참조하세요.
예 9: Standard-Infrequent Access 클래스를 사용하는 테이블을 생성하는 방법
다음 예시에서는 이름이
GameScores
인 테이블을 생성하고 Standard-Infrequent Access(DynamoDB Standard-IA) 테이블 클래스를 할당합니다. 이 테이블 클래스는 가장 비용이 많이 드는 스토리지에 최적화되어 있습니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
\ --key-schemaAttributeName=UserId,KeyType=HASH
AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --table-classSTANDARD_INFREQUENT_ACCESS
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2023-05-25T18:33:07.581000+00:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableClassSummary": { "TableClass": "STANDARD_INFREQUENT_ACCESS" }, "DeletionProtectionEnabled": false } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 클래스를 참조하세요.
예 10: 삭제 방지가 활성화된 테이블을 생성하는 방법
다음 예시에서는 이름이
GameScores
인 테이블을 생성하고 삭제 방지를 활성화합니다.aws dynamodb create-table \ --table-name
GameScores
\ --attribute-definitionsAttributeName=UserId,AttributeType=S
AttributeName=GameTitle,AttributeType=S
\ --key-schemaAttributeName=UserId,KeyType=HASH
AttributeName=GameTitle,KeyType=RANGE
\ --provisioned-throughputReadCapacityUnits=10,WriteCapacityUnits=5
\ --deletion-protection-enabled출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": "2023-05-25T23:02:17.093000+00:00", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "DeletionProtectionEnabled": true } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 삭제 보호 기능 사용을 참조하세요.
-
자세한 API 내용은 명령 참조CreateTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 delete-backup
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
기존 DynamoDB 백업을 삭제하려면
다음
delete-backup
예제에서는 지정된 기존 백업을 삭제합니다.aws dynamodb delete-backup \ --backup-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a
출력:
{ "BackupDescription": { "BackupDetails": { "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", "BackupName": "MusicCollectionBackup", "BackupSizeBytes": 0, "BackupStatus": "DELETED", "BackupType": "USER", "BackupCreationDateTime": 1576616366.715 }, "SourceTableDetails": { "TableName": "MusicCollection", "TableId": "b0c04bcc-309b-4352-b2ae-9088af169fe2", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableSizeBytes": 0, "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableCreationDateTime": 1576615228.571, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "ItemCount": 0, "BillingMode": "PROVISIONED" }, "SourceTableFeatureDetails": {} } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DeleteBackup
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 delete-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 항목을 삭제하는 방법
다음
delete-item
예시에서는MusicCollection
테이블에서 항목을 삭제하고 삭제된 항목에 대한 세부 정보와 요청에 사용된 용량을 요청합니다.aws dynamodb delete-item \ --table-name
MusicCollection
\ --keyfile://key.json
\ --return-valuesALL_OLD
\ --return-consumed-capacityTOTAL
\ --return-item-collection-metricsSIZE
key.json
의 콘텐츠:{ "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Scared of My Shadow"} }
출력:
{ "Attributes": { "AlbumTitle": { "S": "Blue Sky Blues" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Scared of My Shadow" } }, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 2.0 }, "ItemCollectionMetrics": { "ItemCollectionKey": { "Artist": { "S": "No One You Know" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
예 2: 조건부로 항목을 삭제하는 방법
다음 예시에서는
ProductCategory
가Sporting Goods
또는Gardening Supplies
이고 가격이 500에서 600 사이일 때만ProductCatalog
테이블에서 항목을 삭제합니다. 삭제된 항목에 대한 세부 정보가 반환됩니다.aws dynamodb delete-item \ --table-name
ProductCatalog
\ --key '{"Id":{"N":"456"}}
' \ --condition-expression"(ProductCategory IN (:cat1, :cat2)) and (#P between :lo and :hi)"
\ --expression-attribute-namesfile://names.json
\ --expression-attribute-valuesfile://values.json
\ --return-valuesALL_OLD
names.json
의 콘텐츠:{ "#P": "Price" }
values.json
의 콘텐츠:{ ":cat1": {"S": "Sporting Goods"}, ":cat2": {"S": "Gardening Supplies"}, ":lo": {"N": "500"}, ":hi": {"N": "600"} }
출력:
{ "Attributes": { "Id": { "N": "456" }, "Price": { "N": "550" }, "ProductCategory": { "S": "Sporting Goods" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
-
자세한 API 내용은 명령 참조DeleteItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 delete-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블을 삭제하는 방법
다음
delete-table
예시에서는MusicCollection
테이블을 삭제합니다.aws dynamodb delete-table \ --table-name
MusicCollection
출력:
{ "TableDescription": { "TableStatus": "DELETING", "TableSizeBytes": 0, "ItemCount": 0, "TableName": "MusicCollection", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 5 } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 삭제를 참조하세요.
-
자세한 API 내용은 명령 참조DeleteTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-backup
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블의 기존 백업에 대한 정보를 가져오려면
다음
describe-backup
예제에서는 지정된 기존 백업에 대한 정보를 표시합니다.aws dynamodb describe-backup \ --backup-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a
출력:
{ "BackupDescription": { "BackupDetails": { "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", "BackupName": "MusicCollectionBackup", "BackupSizeBytes": 0, "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupCreationDateTime": 1576616366.715 }, "SourceTableDetails": { "TableName": "MusicCollection", "TableId": "b0c04bcc-309b-4352-b2ae-9088af169fe2", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableSizeBytes": 0, "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableCreationDateTime": 1576615228.571, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "ItemCount": 0, "BillingMode": "PROVISIONED" }, "SourceTableFeatureDetails": {} } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeBackup
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-continuous-backups
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 테이블의 연속 백업에 대한 정보를 가져오려면
다음
describe-continuous-backups
예제에서는MusicCollection
테이블의 연속 백업 설정에 대한 세부 정보를 표시합니다.aws dynamodb describe-continuous-backups \ --table-name
MusicCollection
출력:
{ "ContinuousBackupsDescription": { "ContinuousBackupsStatus": "ENABLED", "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "DISABLED" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 시점 복구를 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeContinuousBackups
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-contributor-insights
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 테이블에 대한 Contributor Insights 설정을 보려면
다음
describe-contributor-insights
예제에서는MusicCollection
테이블 및AlbumTitle-index
글로벌 보조 인덱스에 대한 Contributor Insights 설정을 표시합니다.aws dynamodb describe-contributor-insights \ --table-name
MusicCollection
\ --index-nameAlbumTitle-index
출력:
{ "TableName": "MusicCollection", "IndexName": "AlbumTitle-index", "ContributorInsightsRuleList": [ "DynamoDBContributorInsights-PKC-MusicCollection-1576629651520", "DynamoDBContributorInsights-SKC-MusicCollection-1576629651520", "DynamoDBContributorInsights-PKT-MusicCollection-1576629651520", "DynamoDBContributorInsights-SKT-MusicCollection-1576629651520" ], "ContributorInsightsStatus": "ENABLED", "LastUpdateDateTime": 1576629654.78 }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 CloudWatch Contributor Insights를 사용하여 데이터 액세스 분석을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeContributorInsights
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-endpoints
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리전 엔드포인트 정보를 보려면
다음
describe-endpoints
예제에서는 현재 AWS 리전의 엔드포인트에 대한 세부 정보를 표시합니다.aws dynamodb describe-endpoints
출력:
{ "Endpoints": [ { "Address": "dynamodb.us-west-2.amazonaws.com", "CachePeriodInMinutes": 1440 } ] }
자세한 내용은 AWS 일반 참조 의 Amazon DynamoDB 엔드포인트 및 할당량을 참조하세요.
-
자세한 API 내용은 명령 참조DescribeEndpoints
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-global-table-settings
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 글로벌 테이블 설정에 대한 정보를 가져오려면
다음
describe-global-table-settings
예제에서는MusicCollection
전역 테이블에 대한 설정을 표시합니다.aws dynamodb describe-global-table-settings \ --global-table-name
MusicCollection
출력:
{ "GlobalTableName": "MusicCollection", "ReplicaSettings": [ { "RegionName": "us-east-1", "ReplicaStatus": "ACTIVE", "ReplicaProvisionedReadCapacityUnits": 10, "ReplicaProvisionedReadCapacityAutoScalingSettings": { "AutoScalingDisabled": true }, "ReplicaProvisionedWriteCapacityUnits": 5, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "AutoScalingDisabled": true } }, { "RegionName": "us-east-2", "ReplicaStatus": "ACTIVE", "ReplicaProvisionedReadCapacityUnits": 10, "ReplicaProvisionedReadCapacityAutoScalingSettings": { "AutoScalingDisabled": true }, "ReplicaProvisionedWriteCapacityUnits": 5, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "AutoScalingDisabled": true } } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeGlobalTableSettings
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-global-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 글로벌 테이블에 대한 정보를 표시하려면
다음
describe-global-table
예제에서는MusicCollection
전역 테이블에 대한 세부 정보를 보여줍니다.aws dynamodb describe-global-table \ --global-table-name
MusicCollection
출력:
{ "GlobalTableDescription": { "ReplicationGroup": [ { "RegionName": "us-east-2" }, { "RegionName": "us-east-1" } ], "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", "CreationDateTime": 1576625818.532, "GlobalTableStatus": "ACTIVE", "GlobalTableName": "MusicCollection" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeGlobalTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-limits
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
프로비저닝된 용량 제한을 보려면
다음
describe-limits
예제에서는 현재 AWS 리전의 계정에 대해 프로비저닝된 용량 제한을 보여줍니다.aws dynamodb describe-limits
출력:
{ "AccountMaxReadCapacityUnits": 80000, "AccountMaxWriteCapacityUnits": 80000, "TableMaxReadCapacityUnits": 40000, "TableMaxWriteCapacityUnits": 40000 }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB의 제한을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeLimits
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-table-replica-auto-scaling
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
글로벌 테이블의 복제본 간에 자동 크기 조정 설정을 보려면
다음
describe-table-replica-auto-scaling
예제에서는MusicCollection
전역 테이블의 복제본에 대한 자동 조정 설정을 표시합니다.aws dynamodb describe-table-replica-auto-scaling \ --table-name
MusicCollection
출력:
{ "TableAutoScalingDescription": { "TableName": "MusicCollection", "TableStatus": "ACTIVE", "Replicas": [ { "RegionName": "us-east-1", "GlobalSecondaryIndexes": [], "ReplicaProvisionedReadCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaStatus": "ACTIVE" }, { "RegionName": "us-east-2", "GlobalSecondaryIndexes": [], "ReplicaProvisionedReadCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaStatus": "ACTIVE" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조DescribeTableReplicaAutoScaling
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블을 설명하는 방법
다음
describe-table
예시에서는MusicCollection
테이블을 설명합니다.aws dynamodb describe-table \ --table-name
MusicCollection
출력:
{ "Table": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 5 }, "TableSizeBytes": 0, "TableName": "MusicCollection", "TableStatus": "ACTIVE", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1421866952.062 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 설명을 참조하세요.
-
자세한 API 내용은 명령 참조DescribeTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 describe-time-to-live
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블의 Time to Live 설정을 보려면
다음
describe-time-to-live
예제에서는MusicCollection
테이블의 Time to Live 설정을 표시합니다.aws dynamodb describe-time-to-live \ --table-name
MusicCollection
출력:
{ "TimeToLiveDescription": { "TimeToLiveStatus": "ENABLED", "AttributeName": "ttl" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Time to Live를 참조하세요.
-
자세한 API 내용은 명령 참조DescribeTimeToLive
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 get-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블의 항목을 읽는 방법
다음
get-item
예시에서는MusicCollection
테이블에서 항목을 검색합니다. 테이블에는 hash-and-range 기본 키(Artist
및SongTitle
)가 있으므로 이러한 속성을 모두 지정해야 합니다. 또한 이 명령은 작업에 사용된 읽기 용량에 대한 정보를 요청합니다.aws dynamodb get-item \ --table-name
MusicCollection
\ --keyfile://key.json
\ --return-consumed-capacityTOTAL
key.json
의 콘텐츠:{ "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }
출력:
{ "Item": { "AlbumTitle": { "S": "Songs About Life" }, "SongTitle": { "S": "Happy Day" }, "Artist": { "S": "Acme Band" } }, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 0.5 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 읽기를 참조하세요.
예 2: 일관된 읽기를 사용하여 항목을 읽는 방법
다음 예시에서는 강력히 일관되 읽기를 사용하여
MusicCollection
테이블의 항목을 읽습니다.aws dynamodb get-item \ --table-name
MusicCollection
\ --keyfile://key.json
\ --consistent-read \ --return-consumed-capacityTOTAL
key.json
의 콘텐츠:{ "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }
출력:
{ "Item": { "AlbumTitle": { "S": "Songs About Life" }, "SongTitle": { "S": "Happy Day" }, "Artist": { "S": "Acme Band" } }, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 1.0 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 읽기를 참조하세요.
예 3: 항목의 특정 속성을 검색하는 방법
다음 예시에서는 프로젝션 표현식을 사용하여 원하는 항목의 세 가지 속성만 검색합니다.
aws dynamodb get-item \ --table-name
ProductCatalog
\ --key '{"Id": {"N": "102"}}
' \ --projection-expression"#T, #C, #P"
\ --expression-attribute-namesfile://names.json
names.json
의 콘텐츠:{ "#T": "Title", "#C": "ProductCategory", "#P": "Price" }
출력:
{ "Item": { "Price": { "N": "20" }, "Title": { "S": "Book 102 Title" }, "ProductCategory": { "S": "Book" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 읽기를 참조하세요.
-
자세한 API 내용은 명령 참조GetItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-backups
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 기존 DynamoDB 백업을 모두 나열하려면
다음
list-backups
예제에서는 기존 백업을 모두 나열합니다.aws dynamodb list-backups
출력:
{ "BackupSummaries": [ { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", "BackupName": "MusicCollectionBackup1", "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 170 }, { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", "BackupName": "MusicCollectionBackup2", "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 400 } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
예제 2: 특정 시간 범위에서 사용자가 생성한 백업을 나열하려면
다음 예제에서는 생성일이 2020년 1월 1일부터 2020년 3월 1일까지인 사용자( DynamoDB에서 자동으로 생성한 백업 제외)가 생성한
MusicCollection
테이블의 백업만 나열합니다.aws dynamodb list-backups \ --table-name
MusicCollection
\ --time-range-lower-bound1577836800
\ --time-range-upper-bound1583020800
\ --backup-typeUSER
출력:
{ "BackupSummaries": [ { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", "BackupName": "MusicCollectionBackup1", "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 170 } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
예제 3: 페이지 크기 제한
다음 예제에서는 기존 백업 목록을 모두 반환하지만, 각 호출에서 하나의 항목만 검색하여 전체 목록을 가져오는 데 필요한 경우 여러 호출을 수행합니다. 페이지 크기 제한은 많은 리소스에서 list 명령을 실행할 때 유용합니다. 리소스가 많을 때 기본 페이지 크기인 1,000을 사용하면 '시간 초과' 오류가 발생할 수 있습니다.
aws dynamodb list-backups \ --page-size
1
출력:
{ "BackupSummaries": [ { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", "BackupName": "MusicCollectionBackup1", "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 170 }, { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", "BackupName": "MusicCollectionBackup2", "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 400 } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
예제 4: 반환된 항목 수를 제한하려면
다음 예제에서는 반환되는 항목 수를 1로 제한합니다. 응답에는 결과의 다음 페이지를 검색하는 데 사용되는
NextToken
값이 포함됩니다.aws dynamodb list-backups \ --max-items
1
출력:
{ "BackupSummaries": [ { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-a1bcd234", "BackupName": "MusicCollectionBackup1", "BackupCreationDateTime": "2020-02-12T14:41:51.617000-08:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 170 } ], "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
예제 5: 결과의 다음 페이지를 검색하려면
다음 명령은 이전의
list-backups
명령 호출에서 얻은NextToken
값을 사용하여 다른 결과 페이지를 검색합니다. 이 경우 응답에는NextToken
값이 포함되어 있지 않으므로 결과의 끝에 도달했음을 알 수 있습니다.aws dynamodb list-backups \ --starting-token
abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9
출력
{ "BackupSummaries": [ { "TableName": "MusicCollection", "TableId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "BackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01234567890123-b2abc345", "BackupName": "MusicCollectionBackup2", "BackupCreationDateTime": "2020-06-26T11:08:35.431000-07:00", "BackupStatus": "AVAILABLE", "BackupType": "USER", "BackupSizeBytes": 400 } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조ListBackups
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-contributor-insights
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: Contributor Insights 요약 목록을 보려면
다음
list-contributor-insights
예제에서는 Contributor Insights 요약 목록을 보여줍니다.aws dynamodb list-contributor-insights
출력:
{ "ContributorInsightsSummaries": [ { "TableName": "MusicCollection", "IndexName": "AlbumTitle-index", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "ProductCatalog", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "Forum", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "Reply", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "Thread", "ContributorInsightsStatus": "ENABLED" } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 CloudWatch Contributor Insights를 사용하여 데이터 액세스 분석을 참조하세요. DynamoDB
예제 2: 반환되는 항목 수를 제한하려면
다음 예제에서는 반환되는 항목 수를 4개로 제한합니다. 응답에는 결과의 다음 페이지를 검색하는 데 사용되는
NextToken
값이 포함됩니다.aws dynamodb list-contributor-insights \ --max-results
4
출력:
{ "ContributorInsightsSummaries": [ { "TableName": "MusicCollection", "IndexName": "AlbumTitle-index", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "ProductCatalog", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "Forum", "ContributorInsightsStatus": "ENABLED" } ], "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 CloudWatch Contributor Insights를 사용하여 데이터 액세스 분석을 참조하세요. DynamoDB
예제 3: 결과의 다음 페이지를 검색하려면
다음 명령은 이전의
list-contributor-insights
명령 호출에서 얻은NextToken
값을 사용하여 다른 결과 페이지를 검색합니다. 이 경우 응답에는NextToken
값이 포함되어 있지 않으므로 결과의 끝에 도달했음을 알 수 있습니다.aws dynamodb list-contributor-insights \ --max-results
4
\ --next-tokenabCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9
출력:
{ "ContributorInsightsSummaries": [ { "TableName": "Reply", "ContributorInsightsStatus": "ENABLED" }, { "TableName": "Thread", "ContributorInsightsStatus": "ENABLED" } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 CloudWatch Contributor Insights를 사용하여 데이터 액세스 분석을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조ListContributorInsights
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-global-tables
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
기존 DynamoDB 글로벌 테이블을 나열하려면
다음
list-global-tables
예제에서는 기존 글로벌 테이블을 모두 나열합니다.aws dynamodb list-global-tables
출력:
{ "GlobalTables": [ { "GlobalTableName": "MusicCollection", "ReplicationGroup": [ { "RegionName": "us-east-2" }, { "RegionName": "us-east-1" } ] } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조ListGlobalTables
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-tables
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블을 나열하는 방법
다음
list-tables
예제에서는 현재 AWS 계정 및 리전과 연결된 모든 테이블을 나열합니다.aws dynamodb list-tables
출력:
{ "TableNames": [ "Forum", "ProductCatalog", "Reply", "Thread" ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 이름 나열을 참조하세요.
예 2: 페이지 크기를 제한하는 방법
다음 예시에서는 모든 기존 테이블의 목록을 반환하지만 각 호출에서 항목을 하나만 검색하고, 필요한 경우 전체 목록을 가져오기 위해 여러 번 호출합니다. 페이지 크기 제한은 많은 리소스에서 list 명령을 실행할 때 유용합니다. 리소스가 많을 때 기본 페이지 크기인 1,000을 사용하면 '시간 초과' 오류가 발생할 수 있습니다.
aws dynamodb list-tables \ --page-size
1
출력:
{ "TableNames": [ "Forum", "ProductCatalog", "Reply", "Thread" ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 이름 나열을 참조하세요.
예 3: 반환되는 항목 수를 제한하는 방법
다음 예시에서는 반환되는 항목 수를 2개로 제한합니다. 응답에는 결과의 다음 페이지를 검색하는 데 사용되는
NextToken
값이 포함됩니다.aws dynamodb list-tables \ --max-items
2
출력:
{ "TableNames": [ "Forum", "ProductCatalog" ], "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 이름 나열을 참조하세요.
예 4: 결과의 다음 페이지를 검색하는 방법
다음 명령은 이전의
list-tables
명령 호출에서 얻은NextToken
값을 사용하여 다른 결과 페이지를 검색합니다. 이 경우 응답에는NextToken
값이 포함되어 있지 않으므로 결과의 끝에 도달했음을 알 수 있습니다.aws dynamodb list-tables \ --starting-token
abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9
출력:
{ "TableNames": [ "Reply", "Thread" ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 테이블 이름 나열을 참조하세요.
-
자세한 API 내용은 명령 참조ListTables
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 list-tags-of-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: DynamoDB 리소스의 태그를 나열하려면
다음
list-tags-of-resource
예제에서는MusicCollection
테이블에 대한 태그를 표시합니다.aws dynamodb list-tags-of-resource \ --resource-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
출력:
{ "Tags": [ { "Key": "Owner", "Value": "blueTeam" }, { "Key": "Environment", "Value": "Production" } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에 대한 태그 지정을 참조하세요. DynamoDB
예제 2: 반환되는 태그 수를 제한하려면
다음 예제에서는 반환되는 태그 수를 1로 제한합니다. 응답에는 결과의 다음 페이지를 검색하는 데 사용되는
NextToken
값이 포함됩니다.aws dynamodb list-tags-of-resource \ --resource-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
\ --max-items1
출력:
{ "Tags": [ { "Key": "Owner", "Value": "blueTeam" } ], "NextToken": "abCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9" }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에 대한 태그 지정을 참조하세요. DynamoDB
예제 3: 결과의 다음 페이지를 검색하려면
다음 명령은 이전의
list-tags-of-resource
명령 호출에서 얻은NextToken
값을 사용하여 다른 결과 페이지를 검색합니다. 이 경우 응답에는NextToken
값이 포함되어 있지 않으므로 결과의 끝에 도달했음을 알 수 있습니다.aws dynamodb list-tags-of-resource \ --resource-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
\ --starting-tokenabCDeFGhiJKlmnOPqrSTuvwxYZ1aBCdEFghijK7LM51nOpqRSTuv3WxY3ZabC5dEFGhI2Jk3LmnoPQ6RST9
출력:
{ "Tags": [ { "Key": "Environment", "Value": "Production" } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에 대한 태그 지정을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조ListTagsOfResource
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 put-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블에 항목을 추가하는 방법
다음
put-item
예제에서는 MusicCollection 테이블에 새 항목을 추가합니다.aws dynamodb put-item \ --table-name
MusicCollection
\ --itemfile://item.json
\ --return-consumed-capacityTOTAL
\ --return-item-collection-metricsSIZE
item.json
의 콘텐츠:{ "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Greatest Hits"} }
출력:
{ "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 1.0 }, "ItemCollectionMetrics": { "ItemCollectionKey": { "Artist": { "S": "No One You Know" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
예 2: 테이블의 항목을 조건부로 덮어쓰는 방법
다음
put-item
예시에서는 기존 항목에 값이Greatest Hits
인AlbumTitle
속성이 있는 경우에만MusicCollection
테이블의 기존 항목을 덮어씁니다. 이 명령은 항목의 이전 값을 반환합니다.aws dynamodb put-item \ --table-name
MusicCollection
\ --itemfile://item.json
\ --condition-expression"#A = :A"
\ --expression-attribute-namesfile://names.json
\ --expression-attribute-valuesfile://values.json
\ --return-valuesALL_OLD
item.json
의 콘텐츠:{ "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"} }
names.json
의 콘텐츠:{ "#A": "AlbumTitle" }
values.json
의 콘텐츠:{ ":A": {"S": "Greatest Hits"} }
출력:
{ "Attributes": { "AlbumTitle": { "S": "Greatest Hits" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Call Me Today" } } }
키가 이미 있는 경우 다음과 같은 출력이 표시됩니다.
A client error (ConditionalCheckFailedException) occurred when calling the PutItem operation: The conditional request failed.
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
-
자세한 API 내용은 명령 참조PutItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 query
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블을 쿼리하는 방법
다음
query
예시에서는MusicCollection
테이블의 항목을 쿼리합니다. 테이블에는 hash-and-range 기본 키(Artist
및SongTitle
)가 있지만 이 쿼리는 해시 키 값만 지정합니다. 'No One You Know'라는 아티스트의 노래 제목이 반환됩니다.aws dynamodb query \ --table-name
MusicCollection
\ --projection-expression"SongTitle"
\ --key-condition-expression"Artist = :v1"
\ --expression-attribute-valuesfile://expression-attributes.json
\ --return-consumed-capacityTOTAL
expression-attributes.json
의 콘텐츠:{ ":v1": {"S": "No One You Know"} }
출력:
{ "Items": [ { "SongTitle": { "S": "Call Me Today" }, "SongTitle": { "S": "Scared of My Shadow" } } ], "Count": 2, "ScannedCount": 2, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 0.5 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 쿼리 작업을 참조하세요.
예 2: 강력히 일관된 읽기를 사용하여 테이블을 쿼리하고 인덱스를 내림차순으로 탐색하는 방법
다음 예시에서는 첫 번째 예와 동일한 쿼리를 수행하지만 결과를 역순으로 반환하고 강력히 일관된 읽기를 사용합니다.
aws dynamodb query \ --table-name
MusicCollection
\ --projection-expression"SongTitle"
\ --key-condition-expression"Artist = :v1"
\ --expression-attribute-valuesfile://expression-attributes.json
\ --consistent-read \ --no-scan-index-forward \ --return-consumed-capacityTOTAL
expression-attributes.json
의 콘텐츠:{ ":v1": {"S": "No One You Know"} }
출력:
{ "Items": [ { "SongTitle": { "S": "Scared of My Shadow" } }, { "SongTitle": { "S": "Call Me Today" } } ], "Count": 2, "ScannedCount": 2, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 1.0 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 쿼리 작업을 참조하세요.
예 3: 특정 결과를 필터링하는 방법
다음 예시에서는
MusicCollection
을 쿼리하되AlbumTitle
속성에 특정 값이 있는 결과를 제외합니다. 항목을 읽은 후에 필터가 적용되므로ScannedCount
또는ConsumedCapacity
에는 영향을 주지 않는다는 점에 유의하세요.aws dynamodb query \ --table-name
MusicCollection
\ --key-condition-expression"#n1 = :v1"
\ --filter-expression"NOT (#n2 IN (:v2, :v3))"
\ --expression-attribute-namesfile://names.json
\ --expression-attribute-valuesfile://values.json
\ --return-consumed-capacityTOTAL
values.json
의 콘텐츠:{ ":v1": {"S": "No One You Know"}, ":v2": {"S": "Blue Sky Blues"}, ":v3": {"S": "Greatest Hits"} }
names.json
의 콘텐츠:{ "#n1": "Artist", "#n2": "AlbumTitle" }
출력:
{ "Items": [ { "AlbumTitle": { "S": "Somewhat Famous" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Call Me Today" } } ], "Count": 1, "ScannedCount": 2, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 0.5 } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 쿼리 작업을 참조하세요.
예 4: 항목 수만 검색하는 방법
다음 예시에서는 쿼리와 일치하는 항목 수를 검색하지만 항목 자체는 검색하지 않습니다.
aws dynamodb query \ --table-name
MusicCollection
\ --selectCOUNT
\ --key-condition-expression"Artist = :v1"
\ --expression-attribute-valuesfile://expression-attributes.json
expression-attributes.json
의 콘텐츠:{ ":v1": {"S": "No One You Know"} }
출력:
{ "Count": 2, "ScannedCount": 2, "ConsumedCapacity": null }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 쿼리 작업을 참조하세요.
예 5: 인덱스를 쿼리하는 방법
다음 예시에서는 로컬 보조 인덱스
AlbumTitleIndex
를 쿼리합니다. 쿼리는 로컬 보조 인덱스로 프로젝션된 기본 테이블의 모든 속성을 반환합니다. 로컬 보조 인덱스 또는 글로벌 보조 인덱스를 쿼리할 때는table-name
파라미터를 사용하여 기본 테이블의 이름도 제공해야 한다는 점에 유의하세요.aws dynamodb query \ --table-name
MusicCollection
\ --index-nameAlbumTitleIndex
\ --key-condition-expression"Artist = :v1"
\ --expression-attribute-valuesfile://expression-attributes.json
\ --selectALL_PROJECTED_ATTRIBUTES
\ --return-consumed-capacityINDEXES
expression-attributes.json
의 콘텐츠:{ ":v1": {"S": "No One You Know"} }
출력:
{ "Items": [ { "AlbumTitle": { "S": "Blue Sky Blues" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Scared of My Shadow" } }, { "AlbumTitle": { "S": "Somewhat Famous" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Call Me Today" } } ], "Count": 2, "ScannedCount": 2, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 0.5, "Table": { "CapacityUnits": 0.0 }, "LocalSecondaryIndexes": { "AlbumTitleIndex": { "CapacityUnits": 0.5 } } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 쿼리 작업을 참조하세요.
-
자세한 API 내용은 AWS CLI 명령 참조의 쿼리
를 참조하세요.
-
다음 코드 예시에서는 restore-table-from-backup
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
기존 백업에서 DynamoDB 테이블을 복원하려면
다음
restore-table-from-backup
예제는 기존 백업에서 지정된 테이블을 복원합니다.aws dynamodb restore-table-from-backup \ --target-table-name
MusicCollection
\ --backup-arnarn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection2", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": 1576618274.326, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection2", "TableId": "114865c9-5ef3-496c-b4d1-c4cbdd2d44fb", "BillingModeSummary": { "BillingMode": "PROVISIONED" }, "RestoreSummary": { "SourceBackupArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/backup/01576616366715-b4e58d3a", "SourceTableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "RestoreDateTime": 1576616366.715, "RestoreInProgress": true } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 온디맨드 백업 및 복원을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조RestoreTableFromBackup
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 restore-table-to-point-in-time
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 테이블을 특정 시점으로 복원하려면
다음
restore-table-to-point-in-time
예제에서는MusicCollection
테이블을 지정된 시점으로 복원합니다.aws dynamodb restore-table-to-point-in-time \ --source-table-name
MusicCollection
\ --target-table-nameMusicCollectionRestore
\ --restore-date-time1576622404.0
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollectionRestore", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "CreationDateTime": 1576623311.86, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollectionRestore", "TableId": "befd9e0e-1843-4dc6-a147-d6d00e85cb1f", "BillingModeSummary": { "BillingMode": "PROVISIONED" }, "RestoreSummary": { "SourceTableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "RestoreDateTime": 1576622404.0, "RestoreInProgress": true } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 시점 복구를 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조RestoreTableToPointInTime
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 scan
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블을 스캔하는 방법
다음
scan
예시에서는MusicCollection
테이블 전체를 스캔한 다음 'No One You Know' 아티스트의 곡으로 결과 범위를 좁힙니다. 각 항목에 대해 앨범 제목과 노래 제목만 반환됩니다.aws dynamodb scan \ --table-name
MusicCollection
\ --filter-expression"Artist = :a"
\ --projection-expression"#ST, #AT"
\ --expression-attribute-namesfile://expression-attribute-names.json
\ --expression-attribute-valuesfile://expression-attribute-values.json
expression-attribute-names.json
의 콘텐츠:{ "#ST": "SongTitle", "#AT":"AlbumTitle" }
expression-attribute-values.json
의 콘텐츠:{ ":a": {"S": "No One You Know"} }
출력:
{ "Count": 2, "Items": [ { "SongTitle": { "S": "Call Me Today" }, "AlbumTitle": { "S": "Somewhat Famous" } }, { "SongTitle": { "S": "Scared of My Shadow" }, "AlbumTitle": { "S": "Blue Sky Blues" } } ], "ScannedCount": 3, "ConsumedCapacity": null }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에서 스캔 작업을 참조하세요.
-
자세한 API 내용은 명령 참조의 스캔을
참조하세요. AWS CLI
-
다음 코드 예시에서는 tag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 리소스에 태그를 추가하려면
다음
tag-resource
예제에서는 태그 키/값 페어를MusicCollection
테이블에 추가합니다.aws dynamodb tag-resource \ --resource-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
\ --tagsKey=Owner,Value=blueTeam
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에 대한 태그 지정을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조TagResource
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 transact-get-items
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
하나 이상의 테이블에서 여러 항목을 원자적으로 검색하려면
다음
transact-get-items
예제는 여러 항목을 원자적으로 검색합니다.aws dynamodb transact-get-items \ --transact-items
file://transact-items.json
\ --return-consumed-capacityTOTAL
transact-items.json
의 콘텐츠:[ { "Get": { "Key": { "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }, "TableName": "MusicCollection" } }, { "Get": { "Key": { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"} }, "TableName": "MusicCollection" } } ]
출력:
{ "ConsumedCapacity": [ { "TableName": "MusicCollection", "CapacityUnits": 4.0, "ReadCapacityUnits": 4.0 } ], "Responses": [ { "Item": { "AlbumTitle": { "S": "Songs About Life" }, "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "Happy Day" } } }, { "Item": { "AlbumTitle": { "S": "Somewhat Famous" }, "Artist": { "S": "No One You Know" }, "SongTitle": { "S": "Call Me Today" } } } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 트랜잭션을 사용한 복잡한 워크플로 관리를 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조TransactGetItems
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 transact-write-items
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 항목을 하나 이상의 테이블에 원자적으로 쓰는 방법
다음
transact-write-items
예제에서는 한 항목을 업데이트하고 다른 항목을 삭제합니다. 작업이 실패하거나 항목에Rating
속성이 포함된 경우 작업이 실패합니다.aws dynamodb transact-write-items \ --transact-items
file://transact-items.json
\ --return-consumed-capacityTOTAL
\ --return-item-collection-metricsSIZE
transact-items.json
파일 내용:[ { "Update": { "Key": { "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }, "UpdateExpression": "SET AlbumTitle = :newval", "ExpressionAttributeValues": { ":newval": {"S": "Updated Album Title"} }, "TableName": "MusicCollection", "ConditionExpression": "attribute_not_exists(Rating)" } }, { "Delete": { "Key": { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"} }, "TableName": "MusicCollection", "ConditionExpression": "attribute_not_exists(Rating)" } } ]
출력:
{ "ConsumedCapacity": [ { "TableName": "MusicCollection", "CapacityUnits": 10.0, "WriteCapacityUnits": 10.0 } ], "ItemCollectionMetrics": { "MusicCollection": [ { "ItemCollectionKey": { "Artist": { "S": "No One You Know" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] }, { "ItemCollectionKey": { "Artist": { "S": "Acme Band" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 트랜잭션을 사용한 복잡한 워크플로 관리를 참조하세요. DynamoDB
예제 2: 클라이언트 요청 토큰을 사용하여 항목을 원자적으로 작성하려면
다음 명령은 클라이언트 요청 토큰을 사용하여
transact-write-items
idempotent로 호출합니다. 즉, 여러 호출이 하나의 단일 호출과 동일한 효과를 갖습니다.aws dynamodb transact-write-items \ --transact-items
file://transact-items.json
\ --client-request-tokenabc123
transact-items.json
파일 내용:[ { "Update": { "Key": { "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }, "UpdateExpression": "SET AlbumTitle = :newval", "ExpressionAttributeValues": { ":newval": {"S": "Updated Album Title"} }, "TableName": "MusicCollection", "ConditionExpression": "attribute_not_exists(Rating)" } }, { "Delete": { "Key": { "Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"} }, "TableName": "MusicCollection", "ConditionExpression": "attribute_not_exists(Rating)" } } ]
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 트랜잭션을 사용한 복잡한 워크플로 관리를 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조TransactWriteItems
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 untag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 리소스에서 태그를 제거하려면
다음
untag-resource
예제에서는MusicCollection
테이블Owner
에서 키가 있는 태그를 제거합니다.aws dynamodb untag-resource \ --resource-arn
arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
\ --tag-keysOwner
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB에 대한 태그 지정을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UntagResource
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-continuous-backups
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 테이블에 대한 연속 백업 설정을 업데이트하려면
다음
update-continuous-backups
예제에서는MusicCollection
테이블에 대한 point-in-time 복구를 활성화합니다.aws dynamodb update-continuous-backups \ --table-name
MusicCollection
\ --point-in-time-recovery-specificationPointInTimeRecoveryEnabled=true
출력:
{ "ContinuousBackupsDescription": { "ContinuousBackupsStatus": "ENABLED", "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "ENABLED", "EarliestRestorableDateTime": 1576622404.0, "LatestRestorableDateTime": 1576622404.0 } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 시점 복구를 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UpdateContinuousBackups
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-contributor-insights
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블에서 Contributor Insights를 활성화하려면
다음
update-contributor-insights
예제에서는MusicCollection
테이블과AlbumTitle-index
글로벌 보조 인덱스에서 Contributor Insights를 활성화합니다.aws dynamodb update-contributor-insights \ --table-name
MusicCollection
\ --index-nameAlbumTitle-index
\ --contributor-insights-actionENABLE
출력:
{ "TableName": "MusicCollection", "IndexName": "AlbumTitle-index", "ContributorInsightsStatus": "ENABLING" }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB용 CloudWatch Contributor Insights를 사용하여 데이터 액세스 분석을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UpdateContributorInsights
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-global-table-settings
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 글로벌 테이블에서 프로비저닝된 쓰기 용량 설정을 업데이트하려면
다음
update-global-table-settings
예제에서는MusicCollection
전역 테이블의 프로비저닝된 쓰기 용량을 15로 설정합니다.aws dynamodb update-global-table-settings \ --global-table-name
MusicCollection
\ --global-table-provisioned-write-capacity-units15
출력:
{ "GlobalTableName": "MusicCollection", "ReplicaSettings": [ { "RegionName": "eu-west-1", "ReplicaStatus": "UPDATING", "ReplicaProvisionedReadCapacityUnits": 10, "ReplicaProvisionedReadCapacityAutoScalingSettings": { "AutoScalingDisabled": true }, "ReplicaProvisionedWriteCapacityUnits": 10, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "AutoScalingDisabled": true } }, { "RegionName": "us-east-1", "ReplicaStatus": "UPDATING", "ReplicaProvisionedReadCapacityUnits": 10, "ReplicaProvisionedReadCapacityAutoScalingSettings": { "AutoScalingDisabled": true }, "ReplicaProvisionedWriteCapacityUnits": 10, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "AutoScalingDisabled": true } }, { "RegionName": "us-east-2", "ReplicaStatus": "UPDATING", "ReplicaProvisionedReadCapacityUnits": 10, "ReplicaProvisionedReadCapacityAutoScalingSettings": { "AutoScalingDisabled": true }, "ReplicaProvisionedWriteCapacityUnits": 10, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "AutoScalingDisabled": true } } ] }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UpdateGlobalTableSettings
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-global-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 글로벌 테이블을 업데이트하려면
다음
update-global-table
예제에서는 지정된 리전의 복제본을MusicCollection
글로벌 테이블에 추가합니다.aws dynamodb update-global-table \ --global-table-name
MusicCollection
\ --replica-updatesCreate={RegionName=eu-west-1}
출력:
{ "GlobalTableDescription": { "ReplicationGroup": [ { "RegionName": "eu-west-1" }, { "RegionName": "us-east-2" }, { "RegionName": "us-east-1" } ], "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/MusicCollection", "CreationDateTime": 1576625818.532, "GlobalTableStatus": "ACTIVE", "GlobalTableName": "MusicCollection" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UpdateGlobalTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-item
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블의 항목을 업데이트하는 방법
다음
update-item
예제에서는MusicCollection
테이블의 항목을 업데이트합니다. 새 속성(Year
)을 추가하고AlbumTitle
속성을 수정합니다. 업데이트 후에 표시되는 항목 속성이 모두 응답에 반환됩니다.aws dynamodb update-item \ --table-name
MusicCollection
\ --keyfile://key.json
\ --update-expression"SET #Y = :y, #AT = :t"
\ --expression-attribute-namesfile://expression-attribute-names.json
\ --expression-attribute-valuesfile://expression-attribute-values.json
\ --return-valuesALL_NEW
\ --return-consumed-capacityTOTAL
\ --return-item-collection-metricsSIZE
key.json
의 콘텐츠:{ "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }
expression-attribute-names.json
의 콘텐츠:{ "#Y":"Year", "#AT":"AlbumTitle" }
expression-attribute-values.json
의 콘텐츠:{ ":y":{"N": "2015"}, ":t":{"S": "Louder Than Ever"} }
출력:
{ "Attributes": { "AlbumTitle": { "S": "Louder Than Ever" }, "Awards": { "N": "10" }, "Artist": { "S": "Acme Band" }, "Year": { "N": "2015" }, "SongTitle": { "S": "Happy Day" } }, "ConsumedCapacity": { "TableName": "MusicCollection", "CapacityUnits": 3.0 }, "ItemCollectionMetrics": { "ItemCollectionKey": { "Artist": { "S": "Acme Band" } }, "SizeEstimateRangeGB": [ 0.0, 1.0 ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
예 2: 항목을 조건부로 업데이트하는 방법
다음 예시에서는 기존 항목에
Year
속성이 없는 경우에만MusicCollection
테이블의 항목을 업데이트합니다.aws dynamodb update-item \ --table-name
MusicCollection
\ --keyfile://key.json
\ --update-expression"SET #Y = :y, #AT = :t"
\ --expression-attribute-namesfile://expression-attribute-names.json
\ --expression-attribute-valuesfile://expression-attribute-values.json
\ --condition-expression"attribute_not_exists(#Y)"
key.json
의 콘텐츠:{ "Artist": {"S": "Acme Band"}, "SongTitle": {"S": "Happy Day"} }
expression-attribute-names.json
의 콘텐츠:{ "#Y":"Year", "#AT":"AlbumTitle" }
expression-attribute-values.json
의 콘텐츠:{ ":y":{"N": "2015"}, ":t":{"S": "Louder Than Ever"} }
항목에 이미
Year
속성이 있는 경우 DynamoDB는 다음 출력을 반환합니다.An error occurred (ConditionalCheckFailedException) when calling the UpdateItem operation: The conditional request failed
자세한 내용은 Amazon DynamoDB 개발자 안내서의 항목 쓰기를 참조하세요.
-
자세한 API 내용은 명령 참조UpdateItem
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-table-replica-auto-scaling
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
글로벌 테이블의 복제본 간에 Auto Scaling 설정을 업데이트하려면
다음
update-table-replica-auto-scaling
예제에서는 지정된 전역 테이블의 복제본 간에 쓰기 용량 자동 조정 설정을 업데이트합니다.aws dynamodb update-table-replica-auto-scaling \ --table-name
MusicCollection
\ --provisioned-write-capacity-auto-scaling-updatefile://auto-scaling-policy.json
auto-scaling-policy.json
의 콘텐츠:{ "MinimumUnits": 10, "MaximumUnits": 100, "AutoScalingDisabled": false, "ScalingPolicyUpdate": { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 80 } } }
출력:
{ "TableAutoScalingDescription": { "TableName": "MusicCollection", "TableStatus": "ACTIVE", "Replicas": [ { "RegionName": "eu-central-1", "GlobalSecondaryIndexes": [], "ReplicaProvisionedReadCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "MinimumUnits": 10, "MaximumUnits": 100, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 80.0 } } ] }, "ReplicaStatus": "ACTIVE" }, { "RegionName": "us-east-1", "GlobalSecondaryIndexes": [], "ReplicaProvisionedReadCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "MinimumUnits": 10, "MaximumUnits": 100, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 80.0 } } ] }, "ReplicaStatus": "ACTIVE" }, { "RegionName": "us-east-2", "GlobalSecondaryIndexes": [], "ReplicaProvisionedReadCapacityAutoScalingSettings": { "MinimumUnits": 5, "MaximumUnits": 40000, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBReadCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 70.0 } } ] }, "ReplicaProvisionedWriteCapacityAutoScalingSettings": { "MinimumUnits": 10, "MaximumUnits": 100, "AutoScalingRoleArn": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable", "ScalingPolicies": [ { "PolicyName": "DynamoDBWriteCapacityUtilization:table/MusicCollection", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 80.0 } } ] }, "ReplicaStatus": "ACTIVE" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB 글로벌 테이블을 참조하세요. DynamoDB
-
자세한 API 내용은 명령 참조UpdateTableReplicaAutoScaling
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예 1: 테이블의 결제 모드를 수정하는 방법
다음
update-table
예시에서는MusicCollection
테이블에 프로비저닝된 읽기 및 쓰기 용량을 늘립니다.aws dynamodb update-table \ --table-name
MusicCollection
\ --billing-modePROVISIONED
\ --provisioned-throughputReadCapacityUnits=15,WriteCapacityUnits=10
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "AlbumTitle", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "UPDATING", "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", "ProvisionedThroughput": { "LastIncreaseDateTime": "2020-07-28T13:18:18.921000-07:00", "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 15, "WriteCapacityUnits": 10 }, "TableSizeBytes": 182, "ItemCount": 2, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", "BillingModeSummary": { "BillingMode": "PROVISIONED", "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Updating a Table을 참조하세요.
예 2: 글로벌 보조 인덱스를 생성하는 방법
다음 예시에서는
MusicCollection
테이블에 글로벌 보조 인덱스를 추가합니다.aws dynamodb update-table \ --table-name
MusicCollection
\ --attribute-definitionsAttributeName=AlbumTitle,AttributeType=S
\ --global-secondary-index-updatesfile://gsi-updates.json
gsi-updates.json
의 콘텐츠:[ { "Create": { "IndexName": "AlbumTitle-index", "KeySchema": [ { "AttributeName": "AlbumTitle", "KeyType": "HASH" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "Projection": { "ProjectionType": "ALL" } } } ]
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "AlbumTitle", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "UPDATING", "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", "ProvisionedThroughput": { "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 15, "WriteCapacityUnits": 10 }, "TableSizeBytes": 182, "ItemCount": 2, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", "BillingModeSummary": { "BillingMode": "PROVISIONED", "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" }, "GlobalSecondaryIndexes": [ { "IndexName": "AlbumTitle-index", "KeySchema": [ { "AttributeName": "AlbumTitle", "KeyType": "HASH" } ], "Projection": { "ProjectionType": "ALL" }, "IndexStatus": "CREATING", "Backfilling": false, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" } ] } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Updating a Table을 참조하세요.
예 3: 테이블에서 DynamoDB Streams를 활성화하는 방법
다음 명령은
MusicCollection
테이블에서 DynamoDB Streams를 활성화합니다.aws dynamodb update-table \ --table-name
MusicCollection
\ --stream-specificationStreamEnabled=true,StreamViewType=NEW_IMAGE
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "AlbumTitle", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "UPDATING", "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", "ProvisionedThroughput": { "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 15, "WriteCapacityUnits": 10 }, "TableSizeBytes": 182, "ItemCount": 2, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", "BillingModeSummary": { "BillingMode": "PROVISIONED", "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" }, "LocalSecondaryIndexes": [ { "IndexName": "AlbumTitleIndex", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "AlbumTitle", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "Year", "Genre" ] }, "IndexSizeBytes": 139, "ItemCount": 2, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" } ], "GlobalSecondaryIndexes": [ { "IndexName": "AlbumTitle-index", "KeySchema": [ { "AttributeName": "AlbumTitle", "KeyType": "HASH" } ], "Projection": { "ProjectionType": "ALL" }, "IndexStatus": "ACTIVE", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" } ], "StreamSpecification": { "StreamEnabled": true, "StreamViewType": "NEW_IMAGE" }, "LatestStreamLabel": "2020-07-28T21:53:39.112", "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2020-07-28T21:53:39.112" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Updating a Table을 참조하세요.
예 4: 서버 측 암호화를 활성화하는 방법
다음 예시에서는
MusicCollection
테이블에서 서버 측 암호화를 활성화합니다.aws dynamodb update-table \ --table-name
MusicCollection
\ --sse-specificationEnabled=true,SSEType=KMS
출력:
{ "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "AlbumTitle", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "TableName": "MusicCollection", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "SongTitle", "KeyType": "RANGE" } ], "TableStatus": "ACTIVE", "CreationDateTime": "2020-05-26T15:59:49.473000-07:00", "ProvisionedThroughput": { "LastIncreaseDateTime": "2020-07-28T12:59:17.537000-07:00", "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 15, "WriteCapacityUnits": 10 }, "TableSizeBytes": 182, "ItemCount": 2, "TableArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "TableId": "abcd0123-01ab-23cd-0123-abcdef123456", "BillingModeSummary": { "BillingMode": "PROVISIONED", "LastUpdateToPayPerRequestDateTime": "2020-07-28T13:14:48.366000-07:00" }, "LocalSecondaryIndexes": [ { "IndexName": "AlbumTitleIndex", "KeySchema": [ { "AttributeName": "Artist", "KeyType": "HASH" }, { "AttributeName": "AlbumTitle", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "Year", "Genre" ] }, "IndexSizeBytes": 139, "ItemCount": 2, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitleIndex" } ], "GlobalSecondaryIndexes": [ { "IndexName": "AlbumTitle-index", "KeySchema": [ { "AttributeName": "AlbumTitle", "KeyType": "HASH" } ], "Projection": { "ProjectionType": "ALL" }, "IndexStatus": "ACTIVE", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/AlbumTitle-index" } ], "StreamSpecification": { "StreamEnabled": true, "StreamViewType": "NEW_IMAGE" }, "LatestStreamLabel": "2020-07-28T21:53:39.112", "LatestStreamArn": "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2020-07-28T21:53:39.112", "SSEDescription": { "Status": "UPDATING" } } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Updating a Table을 참조하세요.
-
자세한 API 내용은 명령 참조UpdateTable
의 섹션을 참조하세요. AWS CLI
-
다음 코드 예시에서는 update-time-to-live
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
테이블에서 Time to Live 설정을 업데이트하려면
다음
update-time-to-live
예제에서는 지정된 테이블에서 Time to Live를 활성화합니다.aws dynamodb update-time-to-live \ --table-name
MusicCollection
\ --time-to-live-specificationEnabled=true,AttributeName=ttl
출력:
{ "TimeToLiveSpecification": { "Enabled": true, "AttributeName": "ttl" } }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 Time to Live를 참조하세요.
-
자세한 API 내용은 명령 참조UpdateTimeToLive
의 섹션을 참조하세요. AWS CLI
-