Actions par item dans DynamoDB : GetItem, PutItem, UpdateItem, DeleteItem
L'API de DynamoDB se divise en trois familles : les actions par item qui agissent
sur un seul item via sa clé primaire, Query qui lit une plage à l'intérieur d'une
partition, et Scan qui lit tout. Ce guide couvre la première famille — les quatre
opérations que tu utilises le plus : GetItem, PutItem, UpdateItem, DeleteItem.
Ce sont les appels les moins chers et les plus rapides qu'offre DynamoDB, et bien saisir
leurs distinctions (surtout Put vs Update) évite toute une classe de bugs de perte
de données accidentelle.
Quelles sont les actions par item de DynamoDB ?
Les actions par item de DynamoDB sont les quatre opérations qui agissent sur un seul item via sa clé primaire complète : GetItem le lit, PutItem le crée ou le remplace entièrement, UpdateItem modifie des attributs précis sur place, et DeleteItem le supprime. Chacune adresse exactement un item, ce qui en fait les appels les plus rapides et les moins chers — contrairement à Query et Scan, qui en lisent plusieurs.
GetItem— lit un seul item par sa clé primaire complète.PutItem— crée ou remplace entièrement un item.UpdateItem— crée ou modifie des attributs précis d'un item sur place.DeleteItem— supprime un item par sa clé primaire complète.- Les quatre exigent la clé primaire complète (clé de partition, plus clé de tri si la table en a une) — elles adressent exactement un item.
PutItemécrase l'item entier ;UpdateItemest chirurgical — les confondre, c'est ainsi que des attributs disparaissent silencieusement.
Le trait déterminant : un item, clé complète
Chaque action par item vise un seul item via sa clé primaire complète. C'est ce qui les rend rapides et économiques — DynamoDB hache la clé de partition, va droit à l'item, terminé. Aucun filtrage, aucun scan. Si tu ne connais pas la clé complète, ce n'est pas le bon outil ; c'est à ça que servent Query et Scan.
Disons que tu gères des comptes utilisateurs indexés par USER#<id> :
PK: USER#204 email, displayName, plan, createdAtGetItemsurUSER#204→ cet utilisateur, directement.DeleteItemsurUSER#204→ supprime cet utilisateur.
Les deux exigent la clé exacte. Pas de clé, pas d'action par item.
PutItem vs UpdateItem — celle qui pique
Voici la distinction qui mérite d'être intégrée :
PutItemécrit l'item entier. SiUSER#204existe déjà et que tu fais unPutItemavec seulement{email, displayName}, les attributsplanetcreatedAtexistants ont disparu — un put remplace l'item entier, il ne fusionne pas.UpdateItemne change que ce que tu nommes. UnUpdateItemavec unSET email = …laisse tous les autres attributs intacts, et crée l'item s'il n'existait pas (un upsert).
À retenir : opte pour UpdateItem pour changer un item existant, et n'utilise
PutItem que lorsque tu veux vraiment dire « écris cet item comme le nouvel état
complet ». PutItem et UpdateItem acceptent tous deux une
expression de condition pour rendre l'écriture
conditionnelle (« uniquement s'il n'existe pas déjà »).
Les actions par item dans DynoTable
Tu veux les appels API bruts derrière ces actions ? Assemble les expressions et les maps de valeurs typées dans le constructeur d'expressions DynamoDB, et convertis un item en JSON simple vers le format typé de l'API avec le convertisseur DynamoDB JSON.
Dans DynoTable, ce même travail est visuel : ouvre un item dans la grille pour le lire
(un GetItem), édite des attributs et valide (un UpdateItem), ajoute ou remplace une
ligne (un PutItem), ou supprimes-en une — un item à la fois.

Pièges et étapes suivantes
PutItemremplace l'item entier — pour changer quelques champs sans perdre le reste, utiliseUpdateItem.- Tu dois connaître la clé primaire complète — sans clé, c'est Query/Scan, pas une action par item.
- Beaucoup d'items à la fois ? Ne les boucle pas un par un — les opérations par lots les replient en moins d'allers-retours.
- Besoin de récupérer l'ancienne/nouvelle valeur ? Renseigne
ReturnValuesplutôt qu'unGetItemde suivi. - À voir aussi : query vs scan couvre le côté lecture en masse.
Envie de lire, écrire et supprimer des items sans écrire une ligne de code d'API ? Télécharge DynoTable et travaille directement avec tes tables.


