GetItem DynamoDB con la AWS CLI

Sulla CLI la chiave è una stringa DynamoDB JSON, con ogni valore avvolto nel suo tipo ({"S": "..."}, {"N": "..."}), il che significa che la maggior parte della difficoltà di un aws dynamodb get-item sta nel quoting della shell piuttosto che in DynamoDB. La chiave in sé deve comunque essere la chiave primaria completa.

Codice

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"}'

La risposta stampa l'Item in DynamoDB JSON:

{
  "Item": {
    "Artist": {"S": "Arturo Sandoval"},
    "SongTitle": {"S": "Cubano Chant"},
    "AlbumTitle": {"S": "Danzon"},
    "Year": {"N": "1994"}
  }
}

Spiegazione

  • Un mancato riscontro non stampa proprio nulla — nessun Item, nessun oggetto vuoto, codice di uscita 0. Convogliarlo direttamente in jq fallisce su input vuoto, quindi cattura l'output e verifica la stringa prima di parsarla.
  • Il quoting è il vero lavoro — metti il JSON tra apici singoli su bash e zsh così $ e ! restano letterali. Il cmd di Windows e PowerShell seguono regole diverse; metti la chiave in un file e passa --key file://key.json invece di combatterci.
  • --query non è --projection-expression--query è JMESPath, applicato sulla tua macchina dopo che l'Item è stato letto e fatturato. --projection-expression è quello che vede DynamoDB. Nessuno dei due riduce il costo di lettura (perché).
  • Gli alias #proj0 sono obbligatori, non stilisticiYear è nella lista delle parole riservate di AWS, e nominarla direttamente in una proiezione viene rifiutato.
  • Chiedi quanto è costato — aggiungi --return-consumed-capacity TOTAL e la risposta guadagna un blocco ConsumedCapacity. Per questo Item, sotto i 4 KB, sono 0,5 unità di capacità, oppure 1,0 una volta aggiunto --consistent-read (il compromesso).
  • La CLI v2 pagina il tuo output — di default tutto passa per less su macOS e Linux (con i flag FRX) o more su Windows. In uno script è raramente quello che vuoi: passa --no-cli-pager, oppure imposta AWS_PAGER a stringa vuota.

Fallo visivamente

Digitare a mano quel blocco --key è dove se ne va il tempo. Il DynamoDB Expression Builder costruisce il DynamoDB JSON e le mappe di alias da un modulo, poi ti restituisce un comando aws dynamodb pronto da eseguire.

DynoTable fa la stessa cosa su una tabella reale: sfoglia le righe in una griglia, poi esporta la query che c'è dietro come comando CLI. Scarica DynoTable.

Guide correlate

Riferimenti

Ultima verifica 2026-07-28 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

Un client desktop veloce per DynamoDB che esegue il vero SQL che DynamoDB non può — JOINs, GROUP BY, aggregazioni — con modifica visuale e un agente AI sulle tue chiavi Bedrock.

Prova gratuita di 30 giorni, senza carta di credito — poi il piano Free senza limiti di tempo.