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.
Analyser
La Scan
demande vous permet de demander à la fonction AWS AppSync DynamoDB d'envoyer une Scan
demande à DynamoDB et de spécifier les éléments suivants :
-
Filtre pour exclure des résultats
-
Quel index utiliser
-
Combien d'articles renvoyer
-
S'il convient d'utiliser une lecture cohérente
-
Jeton de pagination
-
Analyses parallèles
La structure de l'objet de Scan
requête est la suivante :
type DynamoDBScanRequest = { operation: 'Scan'; index?: string; limit?: number; consistentRead?: boolean; nextToken?: string; totalSegments?: number; segment?: number; filter?: { expression: string; expressionNames?: { [key: string]: string }; expressionValues?: { [key: string]: any }; }; projection?: { expression: string; expressionNames?: { [key: string]: string }; }; };
Les champs sont définis comme suit :
Numériser les champs
-
operation
-
L'opération DynamoDB à effectuer. Pour que vous puissiez effectuer l'opération DynamoDB
Scan
, ce champ doit être défini surScan
. Cette valeur est obligatoire. -
filter
-
Filtre qui peut être utilisé pour filtrer les résultats de DynamoDB avant qu'ils ne soient renvoyés. Pour plus d'informations sur les filtres, consultez Filters (Filtres). Ce champ est facultatif.
-
index
-
Nom de l'index à interroger. L'opération de requête DynamoDB vous permet de rechercher une clé de hachage sur les index secondaires locaux et les index secondaires globaux en plus de l'index de clé primaire. Si cela est spécifié, cela indique à DynamoDB d'interroger l'index spécifié. Si elle ne l'est pas, l'index de clé primaire est interrogé.
-
limit
-
Nombre maximal d'éléments à évaluer simultanément. Ce champ est facultatif.
-
consistentRead
-
Un booléen qui indique s'il faut utiliser des lectures cohérentes lors de l'interrogation de DynamoDB. Ce champ est facultatif et contient
false
par défaut. -
nextToken
-
Jeton de pagination pour continuer une requête précédente. Il a été obtenu à partir d'une requête précédente. Ce champ est facultatif.
-
select
-
Par défaut, la fonction AWS AppSync DynamoDB renvoie uniquement les attributs projetés dans l'index. Si un plus grand nombre d'attributs est requis, ce champ peut être défini. Ce champ est facultatif. Les valeurs prises en charge sont :
-
ALL_ATTRIBUTES
-
Renvoie tous les attributs de l'élément depuis la table ou l'index spécifié. Si vous interrogez un index secondaire local, DynamoDB extrait l'élément entier de la table parent pour chaque élément correspondant de l'index. Si l'index est configuré de façon à projeter tous les attributs de l'élément, toutes les données peuvent être obtenues à partir de l'index secondaire local, et aucune extraction n'est nécessaire.
-
ALL_PROJECTED_ATTRIBUTES
-
Autorisé seulement lorsque vous interrogez un index. Extrait tous les attributs qui ont été projetés dans l'index. Si l'index est configuré de façon à projeter tous les attributs, la valeur renvoyée revient à spécifier
ALL_ATTRIBUTES
. SPECIFIC_ATTRIBUTES
-
Renvoie uniquement les attributs répertoriés dans le
projection
« sexpression
». Cette valeur de retour revient à spécifier les «projection
s »expression
sans spécifier de valeur pourSelect
.
-
-
totalSegments
-
Nombre de segments pour partitionner la table lors de l'exécution d'une analyse parallèle. Ce champ est facultatif, mais doit être spécifié si
segment
est spécifié. -
segment
-
Segment de table de cette opération lorsque vous effectuez une analyse parallèle. Ce champ est facultatif, mais doit être spécifié si
totalSegments
est spécifié. projection
-
Projection utilisée pour spécifier les attributs à renvoyer par l'opération DynamoDB. Pour plus d'informations sur les projections, voir Projections. Ce champ est facultatif.
Les résultats renvoyés par le scan DynamoDB sont automatiquement convertis en GraphQL et en types primitifs JSON et sont disponibles 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 des JavaScript résolveurs.
Les résultats ont la structure suivante :
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }
Les champs sont définis comme suit :
-
items
-
Liste contenant les éléments renvoyés par le scan DynamoDB.
-
nextToken
-
S'il peut y avoir plus de résultats,
nextToken
contient un jeton de pagination que vous pouvez utiliser dans une autre demande. AWS AppSync chiffre et masque le jeton de pagination renvoyé par DynamoDB. Cela empêche que les données provenant de votre table ne soient accidentellement communiquées au mandataire. De plus, ces jetons de pagination ne peuvent pas être utilisés entre différentes fonctions ou résolveurs. -
scannedCount
-
Nombre d'éléments récupérés par DynamoDB avant l'application d'une expression de filtre (le cas échéant).
Exemple 1
L'exemple suivant est un gestionnaire de demande de fonction pour la requête GraphQL :. allPosts
Dans cet exemple, toutes les entrées de la table sont renvoyées.
export function request(ctx) { return { operation: 'Scan' }; }
Exemple 2
L'exemple suivant est un gestionnaire de demande de fonction pour la requête GraphQL :. postsMatching(title: String!)
Dans cet exemple, toutes les entrées de la table sont renvoyées lorsque le titre commence par l'argument title
.
export function request(ctx) { const { title } = ctx.args; const filter = { filter: { beginsWith: title } }; return { operation: 'Scan', filter: JSON.parse(util.transform.toDynamoDBFilterExpression(filter)), }; }
Pour plus d'informations sur DynamoDB, consultez la Scan
API documentation DynamoDB. API