View a markdown version of this page

DeleteItem - 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.

DeleteItem

La DeleteItem demande vous permet de demander à la fonction AWS AppSync DynamoDB d'adresser une DeleteItem requête à DynamoDB et de spécifier les éléments suivants :

  • La clé de l'élément dans DynamoDB

  • Conditions de réussite de l'opération

La DeleteItem demande a la structure suivante :

type DynamoDBDeleteItemRequest = { operation: 'DeleteItem'; key: { [key: string]: any }; condition?: ConditionCheckExpression; customPartitionKey?: string; populateIndexFields?: boolean; _version?: number; };

Les champs sont définis comme suit :

DeleteItem champs

operation

L'opération DynamoDB à effectuer. Pour que vous puissiez effectuer l'opération DynamoDB DeleteItem, ce champ doit être défini sur DeleteItem. Cette valeur est obligatoire.

key

La clé de l'élément dans DynamoDB. 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 spécification d'une « valeur typée », voir Système de types (mappage des demandes). Cette valeur est obligatoire.

condition

Condition permettant de déterminer si la demande doit réussir ou non, en fonction de l'état de l'objet déjà dans DynamoDB. Si aucune condition n'est spécifiée, la requête DeleteItem supprime un élément existant quel que soit son état actuel. Pour plus d'informations sur les conditions, consultez la section Expressions conditionnelles. Cette valeur est facultative.

_version

Valeur numérique représentant la dernière version connue d'un élément. Cette valeur est facultative. Ce champ est utilisé pour la détection de conflits et n'est pris en charge que sur les sources de données versionnées.

customPartitionKey

Lorsqu'elle est activée, cette valeur de chaîne modifie le format des ds_pk enregistrements ds_sk et utilisés par la table de synchronisation delta lorsque le versionnage a été activé (pour plus d'informations, voir Détection des conflits et synchronisation dans le Guide du AWS AppSync développeur). Lorsque cette option est activée, le traitement de la populateIndexFields saisie est également activé. Ce champ est facultatif.

populateIndexFields

Une valeur booléenne qui, lorsqu'elle est activée avec le customPartitionKey, crée de nouvelles entrées pour chaque enregistrement de la table de synchronisation delta, en particulier dans les colonnes gsi_ds_pk etgsi_ds_sk. Pour plus d'informations, consultez la section Détection des conflits et synchronisation dans le Guide du AWS AppSync développeur. Ce champ est facultatif.

L'élément supprimé de DynamoDB est automatiquement converti en types primitifs GraphQL et JSON et est disponible dans le résultat contextuel (). context.result

Pour plus d'informations sur la conversion de type DynamoDB, voir Système de types (mappage des réponses).

Pour plus d'informations sur les JavaScript résolveurs, consultez la section Présentation JavaScript des résolveurs.

Exemple 1

L'exemple suivant est un gestionnaire de requêtes de fonction pour une mutation GraphQL. deleteItem(id: ID!) S'il existe déjà un élément avec cet ID, il est supprimé.

import { util } from '@aws-appsync/utils'; export function request(ctx) { return { operation: 'DeleteItem', key: util.dynamodb.toMapValues({ id: ctx.args.id }), }; }

Exemple 2

L'exemple suivant est un gestionnaire de requêtes de fonction pour une mutation GraphQL. deleteItem(id: ID!, expectedVersion: Int!) S'il existe déjà un élément avec cet ID, il est supprimé, mais uniquement si son champ version est défini sur expectedVersion :

import { util } from '@aws-appsync/utils'; export function request(ctx) { const { id, expectedVersion } = ctx.args; const condition = { id: { attributeExists: true }, version: { eq: expectedVersion }, }; return { operation: 'DeleteItem', key: util.dynamodb.toMapValues({ id }), condition: util.transform.toDynamoDBConditionExpression(condition), }; }

Pour de plus amples informations sur l'API de DynamoDB DeleteItem, veuillez consulter la Documentation sur les API de DynamoDB.