AWS Doc SDK ExamplesWord
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용한 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 세부 정보는 AWS CLI 명령 참조의 BatchGetItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 BatchWriteItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 CreateBackup
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 CreateGlobalTable
를 참조하세요.
-
다음 코드 예시에서는 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로 암호화하려면
다음 예제에서는 라는 테이블을 생성하고 고객 관리형 CMK를 사용하여 암호화
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
\ --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 세부 정보는 AWS CLI 명령 참조의 CreateTable
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DeleteBackup
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DeleteItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DeleteTable
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeBackup
를 참조하세요.
-
다음 코드 예시에서는 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용 Point-in-Time 복구를 참조하세요. DynamoDB
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeContinuousBackups
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeContributorInsights
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeEndpoints
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeGlobalTableSettings
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeGlobalTable
를 참조하세요.
-
다음 코드 예시에서는 describe-limits
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
프로비저닝된 용량 제한을 보려면
다음
describe-limits
예제에서는 현재 AWS 리전의 계정에 대해 프로비저닝된 용량 제한을 보여줍니다.aws dynamodb describe-limits
출력:
{ "AccountMaxReadCapacityUnits": 80000, "AccountMaxWriteCapacityUnits": 80000, "TableMaxReadCapacityUnits": 40000, "TableMaxWriteCapacityUnits": 40000 }
자세한 내용은 Amazon DynamoDB 개발자 안내서의 DynamoDB의 제한을 참조하세요. DynamoDB
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeLimits
를 참조하세요.
-
다음 코드 예시에서는 describe-table-replica-auto-scaling
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
글로벌 테이블의 복제본 간에 Auto Scaling 설정을 보려면
다음
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 세부 정보는 AWS CLI 명령 참조의 DescribeTableReplicaAutoScaling
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeTable
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 DescribeTimeToLive
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 GetItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 ListBackups
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 ListContributorInsights
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 ListGlobalTables
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 ListTables
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 ListTagsOfResource
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 PutItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 RestoreTableFromBackup
를 참조하세요.
-
다음 코드 예시에서는 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용 Point-in-Time 복구를 참조하세요. DynamoDB
-
API 세부 정보는 AWS CLI 명령 참조의 RestoreTableToPointInTime
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 TransactGetItems
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 TransactWriteItems
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-
다음 코드 예시에서는 update-continuous-backups
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
DynamoDB 테이블에 대한 연속 백업 설정을 업데이트하려면
다음
update-continuous-backups
예제에서는MusicCollection
테이블에 대한 enable 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용 Point-in-Time 복구를 참조하세요. DynamoDB
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateContinuousBackups
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateContributorInsights
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateGlobalTableSettings
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateGlobalTable
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateItem
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateTableReplicaAutoScaling
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateTable
를 참조하세요.
-
다음 코드 예시에서는 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 세부 정보는 AWS CLI 명령 참조의 UpdateTimeToLive
를 참조하세요.
-