Azioni item-based di DynamoDB: GetItem, PutItem, UpdateItem, DeleteItem
L'API di DynamoDB si divide in tre famiglie: le azioni item-based che operano su un
singolo Item tramite la sua chiave primaria, Query che legge un intervallo all'interno
di una sola partizione e Scan che legge tutto. Questa guida tratta la prima famiglia —
le quattro operazioni che userai di più: GetItem, PutItem, UpdateItem, DeleteItem.
Sono le chiamate più economiche e veloci che DynamoDB offre, e cogliere bene le loro
distinzioni (specialmente Put vs Update) previene un'intera classe di bug da perdita
accidentale di dati.
Cosa sono le operazioni item-based di DynamoDB?
Le operazioni item-based di DynamoDB sono le quattro chiamate che agiscono su un singolo Item tramite la sua chiave primaria completa: GetItem lo legge, PutItem lo crea o lo sostituisce completamente, UpdateItem modifica attributi specifici sul posto e DeleteItem lo rimuove. Ciascuna indirizza esattamente un Item, il che le rende le chiamate più veloci ed economiche — a differenza di Query e Scan, che ne leggono molti.
GetItem— legge un Item tramite la sua chiave primaria completa.PutItem— crea o sostituisce completamente un Item.UpdateItem— crea o modifica attributi specifici di un Item sul posto.DeleteItem— rimuove un Item tramite la sua chiave primaria completa.- Tutte e quattro richiedono la chiave primaria completa (partition key, più sort key se la tabella ne ha una) — indirizzano esattamente un Item.
PutItemsovrascrive l'intero Item;UpdateItemè chirurgico — confonderli è il modo in cui gli attributi spariscono silenziosamente.
Il tratto distintivo: un Item, chiave completa
Ogni azione item-based ha come bersaglio un singolo Item tramite la sua chiave primaria completa. È questo che le rende veloci ed economiche — DynamoDB calcola l'hash della partition key, va dritto all'Item, fatto. Nessun filtro, nessuno scan. Se non conosci la chiave completa, questi non sono lo strumento giusto; per quello ci sono Query e Scan.
Supponi di gestire account utente con chiave USER#<id>:
PK: USER#204 email, displayName, plan, createdAtGetItemsuUSER#204→ quell'utente, direttamente.DeleteItemsuUSER#204→ rimuove quell'utente.
Entrambe richiedono la chiave esatta. Niente chiave, niente azione item-based.
PutItem vs UpdateItem — quella che ti frega
Questa è la distinzione che vale la pena interiorizzare:
PutItemscrive l'intero Item. SeUSER#204esiste già e fai unPutItemcon solo{email, displayName}, gli attributi esistentiplanecreatedAtspariscono — un put sostituisce l'intero Item, non lo fonde.UpdateItemcambia solo ciò che indichi. UnUpdateItemcon unSET email = …lascia intatti tutti gli altri attributi e crea l'Item se non esisteva (un upsert).
Regola pratica: ricorri a UpdateItem per modificare un Item esistente e usa PutItem
solo quando intendi davvero «scrivere questo Item come stato completo nuovo». Sia PutItem
sia UpdateItem accettano una
condition expression così puoi rendere la scrittura
condizionale («solo se non esiste già»).
Le azioni item-based in DynoTable
Vuoi le chiamate API grezze dietro queste azioni? Assembla le espressioni e le mappe di valori tipizzati nel generatore di espressioni DynamoDB, e converti un Item in JSON semplice nel formato tipizzato dell'API con il convertitore DynamoDB JSON.
In DynoTable, lo stesso lavoro è visivo: apri un Item nella griglia per leggerlo (un
GetItem), modifica gli attributi ed esegui il commit (un UpdateItem), aggiungi o
sostituisci una riga (un PutItem), oppure ne elimini una — un Item alla volta.

Trappole e prossimi passi
PutItemsostituisce l'intero Item — per modificare alcuni campi senza perdere il resto, usaUpdateItem.- Devi conoscere la chiave primaria completa — niente chiave significa Query/Scan, non un'azione su Item.
- Molti Item in una volta? Non eseguirle in ciclo una per una — le operazioni batch le raggruppano in meno round trip.
- Ti serve indietro il valore vecchio/nuovo? Imposta
ReturnValuesinvece di unGetItemsuccessivo. - Correlati: query vs scan tratta il lato lettura-multipla.
Vuoi leggere, scrivere ed eliminare Item senza scrivere una riga di codice API? Scarica DynoTable e lavora con le tue tabelle direttamente.


