BatchDeleteItem - AWS AppSync GraphQL

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 sur BatchDeleteItem. 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 a BatchDeleteItem 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.