Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
BatchDeleteItem
L'objet de BatchDeleteItem
requête vous permet de demander à la fonction AWS AppSync DynamoDB de BatchWriteItem
demander à DynamoDB de supprimer plusieurs éléments, éventuellement sur plusieurs tables. Pour cet objet de demande, vous devez spécifier les éléments suivants :
-
Les noms de tables à partir desquels supprimer les éléments
-
Les clés des éléments à supprimer dans chaque table
Les limites BatchWriteItem
DynamoDB s'appliquent et aucune expression de condition ne peut être fournie.
La structure de l'objet de BatchDeleteItem
requête est la suivante :
type DynamoDBBatchDeleteItemRequest = { operation: 'BatchDeleteItem'; tables: { [tableName: string]: { [key: string]: any }[]; }; };
Les champs sont définis comme suit :
BatchDeleteItem champs
-
operation
-
L'opération DynamoDB à effectuer. Pour que vous puissiez effectuer l'opération DynamoDB
BatchDeleteItem
, ce champ doit être défini surBatchDeleteItem
. Cette valeur est obligatoire. -
tables
-
Les tables DynamoDB dont les éléments doivent être supprimés. Chaque table est une liste de clés DynamoDB représentant la clé primaire des éléments à supprimer. Les éléments DynamoDB peuvent avoir une seule clé de hachage ou une clé de hachage et une clé de tri, selon la structure de la table. Pour plus d'informations sur la façon de spécifier une « valeur saisie », voir Système de types (mappage des demandes). Vous devez fournir au moins une table. La
tables
valeur est obligatoire.
Objets à mémoriser :
-
Contrairement à l'opération
DeleteItem
, l'élément complètement supprimé n'est pas renvoyé dans la réponse. Seule la clé passée est renvoyée. -
Si un élément n'a pas été supprimé à partir de la table, un élément null s'affiche dans le bloc de données pour cette table.
-
Les résultats d'invocation sont triés par table, en fonction de l'ordre dans lequel ils ont été fournis dans l'objet de demande.
-
Chaque
Delete
commande à l'intérieur de aBatchDeleteItem
est atomique. Cependant, un lot peut être partiellement traité. Si un lot est traité partiellement en raison d'une erreur, les clés non traitées sont renvoyées dans le cadre du résultat de l'appel dans le bloc unprocessedKeys. -
BatchDeleteItem
est limité à 25 clés. -
Cette opération n'est pas prise en charge lorsqu'elle est utilisée avec la détection de conflits. L'utilisation des deux en même temps peut entraîner une erreur.
Pour l'exemple de gestionnaire de demandes de fonction suivant :
import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'BatchDeleteItem', tables: { authors: [util.dynamodb.toMapValues({ authorId })], posts: [util.dynamodb.toMapValues({ authorId, postId })], }, }; }
Le résultat de l'appel disponible dans ctx.result
est le suivant :
{ "data": { "authors": [null], "posts": [ // Was deleted { "authorId": "a1", "postId": "p2" } ] }, "unprocessedKeys": { "authors": [ // This key was not processed due to an error { "authorId": "a1" } ], "posts": [] } }
ctx.error
contient des détails sur l'erreur. La présence des données clés, UnprocessedKeys, et de chaque clé de table fournie dans l'objet de demande de fonction est garantie dans le résultat de l'appel. Les éléments ayant été supprimés sont présents dans le bloc de données. Les éléments qui n'ont pas été traités sont marqués comme null dans le bloc de données et sont placés dans le bloc unprocessedKeys.