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.
Analyse
Le document de mappage des demandes vous permet de Scan demander au résolveur AWS AppSync DynamoDB d'adresser une Scan demande à DynamoDB et vous permet 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
Le document de mappage Scan a la structure suivante :
{ "version" : "2017-02-28", "operation" : "Scan", "index" : "fooIndex", "limit" : 10, "consistentRead" : false, "nextToken" : "aPaginationToken", "totalSegments" : 10, "segment" : 1, "filter" : { ... }, "projection" : { ... } }
Les champs sont définis comme suit :
Champs de numérisation
-
version -
Version de la définition du modèle.
2017-02-28et2018-05-29sont actuellement prises en charge. Cette valeur est obligatoire. -
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 d'analyser les index secondaires locaux et les index secondaires globaux en plus de l'index de clé primaire d'une clé de hachage. Si 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 -
Une valeur booléenne qui indique s'il faut utiliser des lectures cohérentes lors de l'interrogation de DynamoDB. Ce champ est facultatif et contient
falsepar 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, le résolveur 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'intégralité de l'élément 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 lesprojection« s »expressionsans 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
segmentest 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
totalSegmentsest spécifié. projection-
Projection utilisée pour spécifier les attributs à renvoyer à partir de 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 types primitifs GraphQL et JSON et sont disponibles dans le contexte de mappage (). $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 modèles de mappage de réponses, voir Présentation des modèles de mappage de 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 l'analyse DynamoDB.
-
nextToken -
S'il peut y avoir d'autres résultats,
nextTokencontient 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. D'autre part, ces jetons de pagination ne peuvent pas être utilisés dans différents résolveurs. -
scannedCount -
Nombre d'éléments récupérés par DynamoDB avant l'application d'une expression de filtre (si elle est présente).
Exemple 1
L'exemple suivant est un modèle de mappage pour la requête GraphQL : allPosts
Dans cet exemple, toutes les entrées de la table sont renvoyées.
{ "version" : "2017-02-28", "operation" : "Scan" }
Exemple 2
L'exemple suivant est un modèle de mappage 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.
{ "version" : "2017-02-28", "operation" : "Scan", "filter" : { "expression" : "begins_with(title, :title)", "expressionValues" : { ":title" : $util.dynamodb.toDynamoDBJson($context.arguments.title) }, } }
Pour de plus amples informations sur l'API de DynamoDB Scan, veuillez consulter la Documentation sur les API de DynamoDB.