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을 작은따옴표로 감싸세요. Windows cmd와 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 다운로드.

관련 가이드

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026-07-28에 마지막으로 검증했습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.