AWS CLI를 사용한 DynamoDB GetItem
CLI에서 키는 각 값이 자신의 타입으로 감싸인({"S": "..."}, {"N": "..."}) DynamoDB JSON 문자열입니다. 그래서 aws dynamodb get-item의 어려움 대부분은 DynamoDB가 아니라 셸 따옴표 처리에 있습니다. 키 자체는 여전히 전체 기본 키여야 합니다.
코드
aws dynamodb get-item \
--table-name 'Music' \
--key '{"Artist":{"S":"Arturo Sandoval"},"SongTitle":{"S":"Cubano Chant"}}' \
--projection-expression '#proj0, #proj1, #proj2, #proj3' \
--expression-attribute-names '{"#proj0":"Artist","#proj1":"SongTitle","#proj2":"AlbumTitle","#proj3":"Year"}'응답은 항목을 DynamoDB JSON으로 출력합니다:
{
"Item": {
"Artist": {"S": "Arturo Sandoval"},
"SongTitle": {"S": "Cubano Chant"},
"AlbumTitle": {"S": "Danzon"},
"Year": {"N": "1994"}
}
}설명
- 일치하는 항목이 없으면 아무것도 출력하지 않습니다 —
Item도, 빈 객체도 없고 종료 코드는 0입니다. 그것을 그대로jq에 파이프하면 빈 입력에서 실패하므로, 출력을 캡처해 파싱 전에 문자열을 검사하세요. - 진짜 일은 따옴표 처리입니다 — bash와 zsh에서는
$와!가 리터럴로 남도록 JSON을 작은따옴표로 감싸세요. Windowscmd와 PowerShell은 규칙이 다르므로, 그것들과 싸우기보다 키를 파일에 넣고--key file://key.json을 전달하세요. --query는--projection-expression이 아닙니다 —--query는 JMESPath이며, 항목을 읽고 요금이 매겨진 뒤 여러분의 컴퓨터에서 적용됩니다. DynamoDB가 보는 것은--projection-expression쪽입니다. 어느 쪽도 읽기 비용을 줄이지 않습니다(이유).#proj0별칭은 취향이 아니라 필수입니다 —Year는 AWS의 예약어 목록에 있으며, 프로젝션에서 이름을 직접 쓰면 거부됩니다.- 비용이 얼마였는지 물어보세요 —
--return-consumed-capacity TOTAL을 추가하면 응답에ConsumedCapacity블록이 생깁니다. 4 KB 미만인 이 항목의 경우 0.5 용량 단위이며,--consistent-read를 추가하면 1.0이 됩니다(트레이드오프). - CLI v2는 출력을 페이저로 넘깁니다 — 기본적으로 macOS와 Linux에서는 모든 것이
less(FRX플래그와 함께), Windows에서는more를 거칩니다. 스크립트에서 그것을 원하는 경우는 드무니--no-cli-pager를 전달하거나AWS_PAGER를 빈 문자열로 설정하세요.
시각적으로 해보기
저 --key 덩어리를 손으로 타이핑하는 데 시간이 갑니다. DynamoDB Expression Builder가 폼 하나에서 DynamoDB JSON과 별칭 맵을 만들고, 바로 실행할 수 있는 aws dynamodb 명령을 돌려줍니다.
DynoTable은 실제 테이블을 상대로 같은 일을 합니다. 그리드에서 행을 탐색한 다음, 그 뒤의 쿼리를 CLI 명령으로 다시 내보내세요. DynoTable 다운로드.
관련 가이드
- Query vs. Scan — 언제
get-item하나가query보다 나은지. - DynamoDB 파티션 키의 동작 방식 —
get-item에 전체 키가 필요한 이유. - DynamoDB ResourceNotFoundException — 여기서 흔한 첫 오류: 잘못된 테이블 이름이나 리전.
- "The provided key element does not match the schema" — 전달한 키가 테이블의 키 스키마와 맞지 않는 경우.
참고 자료
- GetItem — Amazon DynamoDB API Reference
- get-item — AWS CLI Command Reference
- Read consistency — Amazon DynamoDB Developer Guide
- Using the pagination options in the AWS CLI (client-side pager) — AWS CLI User Guide
위에 링크된 공식 AWS 문서를 기준으로 2026-07-28에 마지막으로 검증했습니다.