AWS Cloud9 n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus
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.
Tutoriel Amazon DynamoDB pour AWS Cloud9
Ce didacticiel vous permet de configurer un environnement de AWS Cloud9 développement compatible avec Amazon DynamoDB.
DynamoDB est un service de base de données NoSQL entièrement géré. Vous pouvez utiliser DynamoDB pour créer une table de base de données capable de stocker et de récupérer n'importe quelle quantité de données, ainsi que de traiter n'importe quel niveau de trafic des demandes. DynamoDB répartit automatiquement les données et le trafic de la table sur un nombre suffisant de serveurs afin de gérer la capacité de requêtes spécifiée et le volume de données stockées, tout en assurant la cohérence et la rapidité des performances. Pour plus d'informations, consultez Amazon DynamoDB sur
La création de cet échantillon peut entraîner des frais sur votre AWS compte. Cela inclut les frais éventuels pour des services tels qu'Amazon EC2 et DynamoDB. Pour plus d'informations, consultez les sections EC2 Tarification Amazon et Tarification
Pour plus d'informations sur les offres AWS de base de données supplémentaires, consultez Amazon Relational Database Service (RDS
Prérequis
Avant d'utiliser cet exemple, vérifiez que votre configuration respecte les conditions requises suivantes :
-
Vous devez disposer d'un environnement AWS Cloud9 EC2 de développement existant. Cet exemple suppose que vous disposez déjà d'un EC2 environnement connecté à une EC2 instance Amazon exécutant Amazon Linux ou Ubuntu Serveur. Si vous utilisez un autre type d'environnement ou de système d'exploitation, vous devrez peut-être adapter les instructions de cet exemple pour configurer les outils associés. Pour de plus amples informations, veuillez consulter Création d'un environnement dans AWS Cloud9.
-
L' AWS Cloud9 IDE correspondant à l'environnement existant est déjà ouvert. Lorsque vous ouvrez un environnement, AWS Cloud9 ouvre l'IDE correspondant à cet environnement dans votre navigateur Web. Pour de plus amples informations, veuillez consulter Ouvrir un environnement dans AWS Cloud9.
Étape 1 : Installer et configurer la AWS CLI, le AWS CloudShell ou les deux dans votre environnement
Au cours de cette étape, vous utilisez l' AWS Cloud9 IDE pour installer et configurer le AWS CLI AWS CloudShell, ou les deux dans votre environnement afin de pouvoir exécuter des commandes pour interagir avec DynamoDB. Ensuite, vous utilisez la AWS CLI pour exécuter une commande DynamoDB basique pour tester votre installation et votre configuration.
-
Pour configurer la gestion des informations d'identification pour le AWS CLI AWS CloudShell ou pour installer le AWS CLI AWS CloudShell ou les deux dans votre environnement, suivez les étapes 1 et 2 de l'AWS CLIAWS CloudShell exemple et revenez à cette rubrique. Si vous avez déjà installé et configuré le AWS CLI AWS CloudShell, le ou les deux dans votre environnement, vous n'avez pas besoin de le refaire.
-
Testez l'installation et la configuration de l'aws-shell AWS CLI, ou des deux, en exécutant la
list-tablescommande DynamoDB depuis une session de terminal de votre environnement pour répertorier vos tables DynamoDB existantes, le cas échéant. (Pour démarrer une nouvelle session de terminal, dans la barre de menus, choisissez Windows (Fenêtre), New Terminal (Nouveau terminal).aws dynamodb list-tables # For the AWS CLI. dynamodb list-tables # For the aws-shell.Note
Dans cet exemple, si vous utilisez aws-shell, omettez
awsdans chaque commande commençant paraws. Pour démarrer aws-shell, exécutez la commandeaws-shell. Pour arrêter aws-shell, exécutez la commande.exitou.quit.Si cette commande réussit, elle génère un tableau
TableNamescontenant une liste de tables DynamoDB existantes que vous possédez déjà. Si vous n'avez pas encore de tables DynamoDB, le tableauTableNamessera vide.{ "TableNames": [] }Si vous avez des tables DynamoDB, le tableau
TableNamescontient une liste des noms de table.
Étape 2 : Création d'une table
Au cours de cette étape, vous créez une table dans DynamoDB et spécifiez le nom, la disposition, la clé primaire simple et les paramètres de débit de données de la table.
Cet exemple de table, nommé Weather, contient des informations sur les prévisions météorologiques pour quelques villes aux États-Unis. La table contient les types d'informations suivants (dans DynamoDB, chaque information est nommée attribut) :
-
ID de ville unique obligatoire (
CityID) -
Date de prévision obligatoire (
Date) -
Nom de la ville (
City) -
Nom de l'état (
State) -
Prévisions météorologiques (
Conditions) -
Prévisions de températures (
Temperatures)-
Prévisions des maximales en degrés Fahrenheit (
HighF) -
Prévisions des minimales en degrés Fahrenheit (
LowF)
-
Pour créer la table, dans une session de terminal dans l' AWS Cloud9 IDE, exécutez la commande create-tableDynamoDB.
aws dynamodb create-table \ --table-name Weather \ --attribute-definitions \ AttributeName=CityID,AttributeType=N AttributeName=Date,AttributeType=S \ --key-schema \ AttributeName=CityID,KeyType=HASH AttributeName=Date,KeyType=RANGE \ --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
Dans cette commande :
-
--table-namereprésente le nom de table (Weatherdans cet exemple). Les noms des tables doivent être uniques dans chaque AWS région de votre AWS compte. -
--attribute-definitionsreprésente les attributs qui sont utilisés pour identifier de manière unique les éléments de la table. Chacun des éléments de cette table sont identifiés de manière unique par une combinaison d'IDattribut numérique et d'un attributDatereprésenté sous la forme d'une chaîne au format ISO-8601. -
--key-schemareprésente le schéma de clé de la table. Cette table dispose d'une clé primaire composite deCityIDetDate. Cela signifie que chaque élément de la table doit posséder une valeur d'attributCityIDet une valeur d'attributDate, mais deux éléments de la table ne peuvent pas avoir la même valeur d'attributCityIDet de valeur d'attributDate. -
--provisioned-throughputreprésente la capacité de lecture/écriture de la table. DynamoDB autorise jusqu'à 5 lectures fortement cohérentes par seconde pour les éléments d'une taille allant jusqu'à 4 Ko, ou jusqu'à 5 lectures cohérentes à terme (eventually consistent) par seconde pour les éléments d'une taille allant jusqu'à 4 Ko. DynamoDB permet également jusqu'à 5 écritures par seconde pour les éléments d'une taille allant jusqu'à 1 Ko.Note
La définition d'un débit provisionné plus élevé peut entraîner des frais supplémentaires pour votre AWS compte.
Pour plus d'informations sur cette commande DynamoDB et sur d'autres, consultez dynamodb dans la Référence des commandes AWS CLI .
Si cette commande réussit, elle affiche des informations récapitulatives sur la nouvelle table qui est en cours de création. Pour confirmer que la table est créée avec succès, exécutez la commande DynamoDB describe-table en spécifiant le nom de la table (--table-name).
aws dynamodb describe-table --table-name Weather
Une fois la table créée avec succès, la valeur TableStatus CREATING devient ACTIVE. Ne passez pas à l'étape suivante avant que la table n'ait été créée avec succès.
Étape 3 : Ajouter un élément à la table
Dans cette étape, vous ajoutez un élément à la table que vous venez de créer.
-
Créez un fichier nommé
weather-item.jsonavec le contenu suivant. Pour créer un nouveau fichier, dans la barre de menus, choisissez File (Fichier), New File (Nouveau fichier). Pour l'enregistrer, choisissez File, Save.{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "46" } } } }Dans ce code,
Nreprésente une valeur d'attribut qui est un nombre.Sest une valeur d'attribut de chaîne.Mest un attribut de carte qui est un ensemble de paires attribut/valeur. Vous devez spécifier un type de données d'attribut chaque fois que vous utilisez des éléments. Pour connaître les types de données d'attribut disponibles supplémentaires, consultez Type de données dans le Guide du développeur Amazon DynamoDB. -
Exécutez la commande DynamoDB
put-item, en spécifiant le nom de la table (--table-name) et le chemin de l'élément au format JSON (--item).aws dynamodb put-item \ --table-name Weather \ --item file://weather-item.jsonSi la commande réussit, elle s'exécute sans erreur, et aucun message de confirmation ne s'affiche.
-
Pour confirmer le contenu actuel de la table, exécutez la commande DynamoDB
scan, en spécifiant le nom de la table (--table-name).aws dynamodb scan --table-name WeatherSi la commande réussit, les informations récapitulatives sur la table et l'élément que vous venez d'ajouter s'affiche.
Étape 4 : Ajouter plusieurs éléments à la table
Dans cette étape, vous ajoutez plusieurs éléments supplémentaires à la table Weather.
-
Créez un fichier nommé
more-weather-items.jsonavec le contenu suivant.{ "Weather": [ { "PutRequest": { "Item": { "CityID": { "N": "1" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "52" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "1" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Seattle" }, "State": { "S": "WA" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "49" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Thunderstorms" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "43" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "51" }, "LowF": { "N": "41" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "2" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Portland" }, "State": { "S": "OR" }, "Conditions": { "S": "Rain Showers" }, "Temperatures": { "M": { "HighF": { "N": "49" }, "LowF": { "N": "39" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-12" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Rain" }, "Temperatures": { "M": { "HighF": { "N": "59" }, "LowF": { "N": "40" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-13" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Partly Sunny" }, "Temperatures": { "M": { "HighF": { "N": "54" }, "LowF": { "N": "37" } } } } } }, { "PutRequest": { "Item": { "CityID": { "N": "3" }, "Date": { "S": "2017-04-14" }, "City": { "S": "Portland" }, "State": { "S": "ME" }, "Conditions": { "S": "Mostly Sunny" }, "Temperatures": { "M": { "HighF": { "N": "53" }, "LowF": { "N": "37" } } } } } } ] }Dans ce code, 8 objets
Itemdéfinissent les 8 articles à ajouter à la table, similaire à l'élément unique défini dans l'étape précédente. Toutefois, lorsque vous exécutez la commande DynamoDBbatch-write-itemà l'étape suivante, vous devez fournir un objet au format JSON qui inclut chaque objetItemdans un objetPutRequestcontenant. Vous devez ensuite inclure ces objetsPutRequestdans une baie parent qui possède le même nom que la table. -
Exécutez la commande DynamoDB
batch-write-item, en spécifiant le chemin des éléments au format JSON à ajouter (--request-items).aws dynamodb batch-write-item \ --request-items file://more-weather-items.jsonSi la commande réussit, elle affiche le message suivant, confirmant que les éléments ont été ajoutés avec succès.
{ "UnprocessedItems": {} } -
Pour confirmer le contenu actuel de la table, réexécutez la commande DynamoDB
scan.aws dynamodb scan --table-name WeatherSi la commande réussit, 9 articles sont désormais affichés.
Étape 5 ; Créer un index secondaire global
L'exécution de la commande DynamoDB scan pour obtenir des informations sur les éléments peut être lente, en particulier lorsque la taille d'une table s'accroît ou si le type d'informations que vous souhaitez obtenir est complexe. Vous pouvez créer un ou plusieurs index secondaires pour accélérer les choses et faciliter l'obtention d'informations. Au cours de cette étape, vous découvrez deux types d'index secondaires que DynamoDB prend en charge pour cela. Ils sont nommés index secondaire local et index secondaire global. Puis, vous créez un index secondaire global.
Pour comprendre ces types d'index secondaire, vous devez d'abord connaître les clés primaires, qui identifient de manière unique les éléments d'une table. DynamoDB prend en charge une clé primaire simple ou une clé primaire composite. Une clé primaire simple possède un attribut unique, et cette valeur d'attribut doit être unique pour chaque élément de la table. Cet attribut est également connu en tant que clé de partition (ou attribut de hachage), que DynamoDB peut utiliser pour partitionner des éléments pour un accès plus rapide. Une table peut également avoir une clé primaire composite, qui contient deux attributs. Le premier attribut est la clé de partition, et le deuxième est une clé de tri (également nommée attribut de plage). Dans une table possédant une clé primaire composite, deux éléments peuvent avoir la même valeur de clé de partition, mais ils ne peuvent pas avoir aussi la même valeur de clé de tri. La table Weather a une clé primaire composite.
Un index secondaire local possède la même clé de partition que la table elle-même, mais ce type d'index peut avoir une clé de tri différente. Un index secondaire global peut avoir une clé de partition et une clé de tri qui sont tous deux différents de la table elle-même.
Par exemple, vous pouvez déjà utiliser la clé primaire pour accéder à des éléments Weather par CityID. Pour accéder à des éléments Weather par State, vous pouvez créer un index secondaire local qui dispose d'une clé de partition de CityID (elle doit être identique à la table elle-même) et une clé de tri de State. Pour accéder à des éléments Weather par City, vous pouvez créer un index secondaire global qui possède une clé de partition de City et une clé de tri de Date.
Vous pouvez créer des index secondaires locaux uniquement pendant que vous créez une table. La table Weather existant déjà, vous ne pouvez pas y ajouter des index secondaires locaux. Toutefois, vous pouvez ajouter des index secondaires globaux. Essayez d'en ajouter un à présent.
Note
La création d'index secondaires peut entraîner des frais supplémentaires sur votre compte AWS .
-
Créez un fichier nommé
weather-global-index.jsonavec le contenu suivant.[ { "Create": { "IndexName": "weather-global-index", "KeySchema": [ { "AttributeName": "City", "KeyType": "HASH" }, { "AttributeName": "Date", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "State", "Conditions", "Temperatures" ] }, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } } ]Dans ce code :
-
Le nom de l'index secondaire global est
weather-global-index. -
L'attribut
Cityest la clé de partition (attribut de hachage), et l'attributDateest la clé de tri (attribut d'intervalle). -
Projectiondéfinit les attributs à récupérer par défaut (en plus de l'attribut de hachage et de n'importe quel attribut de plage) pour chaque élément correspondant à une recherche de table qui utilise cet index. Dans cet exemple, les attributsState,Conditions,HighF(une partie deTemperatures) etLowF(également une partie deTemperatures) (ainsi que les attributsCityetDate) sont récupérées pour chaque élément correspondant. -
De même que les tables, un index secondaire global doit définir ses paramètres de débit provisionné.
-
Les paramètres
IndexName,KeySchema,ProjectionetProvisionedThroughputdoivent être contenus dans un objetCreate, qui définit l'index secondaire global à créer lorsque vous exécutez la commande DynamoDBupdate-tableà l'étape suivante.
-
-
Exécutez la commande DynamoDB
update-table.aws dynamodb update-table \ --table-name Weather \ --attribute-definitions \ AttributeName=City,AttributeType=S AttributeName=Date,AttributeType=S \ --global-secondary-index-updates file://weather-global-index.jsonDans cette commande :
-
--table-nameest le nom de la table à mettre à jour. -
--attribute-definitionssont les attributs à inclure dans l'index. La clé de partition est toujours répertoriée en premier, et une clé de tri est toujours répertoriée en deuxième. -
--global-secondary-index-updatesest le chemin d'accès au fichier qui définit l'index secondaire global.
Si cette commande réussit, elle affiche des informations récapitulatives sur le nouvel index secondaire global qui est en cours de création. Pour confirmer que l'index secondaire global est créé avec succès, exécutez la commande DynamoDB
describe-tableen spécifiant le nom de la table (--table-name).aws dynamodb describe-table --table-name WeatherLorsque l'index secondaire global est créé avec succès, la valeur
TableStatusUPDATINGdevientACTIVE, et la valeurIndexStatusCREATINGdevientACTIVE. Ne passez pas à l'étape suivante avant que l'index secondaire global n'ait été créé avec succès. Cela peut prendre plusieurs minutes. -
Étape 6 : Obtenir des éléments dans la table
Il existe plusieurs moyens d'obtenir des éléments depuis des tables. Au cours de cette étape, vous obtenez des éléments à l'aide de la clé primaire de la table, à l'aide d'autres attributs de la table, et à l'aide de l'index secondaire global.
Pour obtenir un seul élément à partir d'une table en fonction de la valeur de clé primaire d'un élément
Si vous connaissez la valeur clé primaire d'un élément, vous pouvez obtenir l'élément correspondant en exécutant la commande DynamoDB get-item , scan , ou query . Voici les principales différences dans ces commandes :
-
get-itemrenvoie un ensemble d'attributs pour l'élément possédant la clé primaire donnée. -
scanrenvoie un ou plusieurs éléments et attributs d'élément en accédant à chaque élément dans une table ou un index secondaire. -
querytrouve les éléments d'après les valeurs de clé primaire. Vous pouvez interroger n'importe quel table ou index secondaire comportant une clé primaire composite (clé de partition et clé de tri).
Dans cet exemple, voici comment utiliser chacune de ces commandes pour obtenir l'élément qui contient la valeur d'attribut CityID de 1 et la valeur d'attribut Date de 2017-04-12.
-
Pour exécuter la commande DynamoDB
get-item, spécifiez le nom de la table (--table-name), la valeur clé primaire (--key) et les valeurs d'attribut de l'élément à afficher (--projection-expression).Dateétant un mot-clé réservé dans DynamoDB, vous devez également fournir un alias pour la valeur d'attributDate(--expression-attribute-names). (Stateest également un mot-clé réservé ; un alias lui sera attribué dans les étapes ultérieures.)aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }' \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }'Dans cette commande et les autres, pour afficher tous les attributs de l'élément, n'incluez pas
--projection-expression. Dans cet exemple, étant donné que vous n'incluez pas--projection-expression, vous n'avez pas non plus besoin d'inclure--expression-attribute-names.aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }' -
Pour exécuter la commande DynamoDB
scan, spécifiez :-
Nom de la table (
--table-name). -
La recherche à exécuter (
--filter-expression). -
Les critères de recherche à utiliser (
--expression-attribute-values). -
Les types d'attributs à afficher pour l'élément correspondant (
--select). -
Les valeurs d'attribut pour l'élément à afficher (
--projection-expression). -
Si l'un de vos attributs utilise les mots-clés réservés dans DynamoDB, les alias de ces attributs (
--expression-attribute-names).
aws dynamodb scan \ --table-name Weather \ --filter-expression "(CityID = :cityID) and (#D = :date)" \ --expression-attribute-values \ '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }' -
-
Pour exécuter la commande DynamoDB
query, spécifiez :-
Nom de la table (
--table-name). -
La recherche à exécuter (
--key-condition-expression). -
Les valeurs d'attribut à utiliser dans la recherche (
--expression-attribute-values). -
Les types d'attributs à afficher pour l'élément correspondant (
--select). -
Les valeurs d'attribut pour l'élément à afficher (
--projection-expression). -
Si l'un de vos attributs utilise les mots-clés réservés dans DynamoDB, les alias de ces attributs (
--expression-attribute-names).
aws dynamodb query \ --table-name Weather \ --key-condition-expression "(CityID = :cityID) and (#D = :date)" \ --expression-attribute-values \ '{ ":cityID": { "N": "1" }, ":date": { "S": "2017-04-12" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression \ "City, #D, Conditions, Temperatures.HighF, Temperatures.LowF" \ --expression-attribute-names '{ "#D": "Date" }'Notez que la commande
scana eu besoin d'analyser les 9 éléments pour obtenir le résultat, tandis que la commandequeryn'a eu besoin d'analyser qu'1 élément. -
Pour obtenir plusieurs éléments à partir d'une table en fonction des valeurs de clé primaire des éléments
Si vous connaissez les valeurs de clé primaire des éléments, vous pouvez obtenir les éléments correspondants en exécutant la commande DynamoDB batch-get-item . Dans cet exemple, voici comment utiliser les éléments qui contiennent la valeur d'attribut CityID de 3 et les valeurs d'attribut Date de 2017-04-13 ou 2017-04-14.
Exécutez la commande DynamoDB batch-get-item , en spécifiant le chemin d'accès à un fichier qui décrit les éléments à obtenir (--request-items).
aws dynamodb batch-get-item --request-items file://batch-get-item.json
Dans cet exemple, le code dans le fichier batch-get-item.json spécifie la recherche dans la table Weather d'éléments possédant un CityID de 3 et un Date de 2017-04-13 ou 2017-04-14. Pour chaque élément trouvé, les valeurs d'attribut pour City, State, Date et HighF (partie de Temperatures) s'affichent, si elles existent.
{ "Weather" : { "Keys": [ { "CityID": { "N": "3" }, "Date": { "S": "2017-04-13" } }, { "CityID": { "N": "3" }, "Date": { "S": "2017-04-14" } } ], "ProjectionExpression": "City, #S, #D, Temperatures.HighF", "ExpressionAttributeNames": { "#S": "State", "#D": "Date" } } }
Pour obtenir tous les éléments correspondants à partir d'une table
Si vous connaissez des informations sur les valeurs des attributs de la table, vous pouvez obtenir les éléments correspondants en exécutant la commande DynamoDB scan . Dans cet exemple, voici comment utiliser les dates lorsque la valeur d'attribut Conditions contient Sunny et que la valeur d'attribut HighF (une partie de Temperatures) est supérieure à 53.
Exécutez la commande DynamoDB scan , en spécifiant :
-
Nom de la table (
--table-name). -
La recherche à exécuter (
--filter-expression). -
Les critères de recherche à utiliser (
--expression-attribute-values). -
Les types d'attributs à afficher pour l'élément correspondant (
--select). -
Les valeurs d'attribut pour l'élément à afficher (
--projection-expression). -
Si l'un de vos attributs utilise les mots-clés réservés dans DynamoDB, les alias de ces attributs (
--expression-attribute-names).
aws dynamodb scan \ --table-name Weather \ --filter-expression \ "(contains (Conditions, :sun)) and (Temperatures.HighF > :h)" \ --expression-attribute-values \ '{ ":sun": { "S" : "Sunny" }, ":h": { "N" : "53" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \ --expression-attribute-names '{ "#S": "State", "#D": "Date" }'
Pour obtenir tous les éléments correspondants à partir d'un index secondaire global
Pour effectuer une recherche à l'aide d'un index secondaire global, utilisez la commande DynamoDB query . Dans cet exemple, voici comment utiliser l'index secondaire weather-global-index pour obtenir les prévisions météorologiques pour les villes nommées Portland pour les dates du 2017-04-13 et du 2017-04-14.
Exécutez la commande DynamoDB query , en spécifiant :
-
Nom de la table (
--table-name). -
Nom de l'index secondaire global (
--index-name). -
La recherche à exécuter (
--key-condition-expression). -
Les valeurs d'attribut à utiliser dans la recherche (
--expression-attribute-values). -
Les types d'attributs à afficher pour l'élément correspondant (
--select). -
Si l'un de vos attributs utilise les mots-clés réservés dans DynamoDB, les alias de ces attributs (
--expression-attribute-names).
aws dynamodb query \ --table-name Weather \ --index-name weather-global-index \ --key-condition-expression "(City = :city) and (#D between :date1 and :date2)" \ --expression-attribute-values \ '{ ":city": { "S" : "Portland" }, ":date1": { "S": "2017-04-13" }, ":date2": { "S": "2017-04-14" } }' \ --select SPECIFIC_ATTRIBUTES \ --projection-expression "City, #S, #D, Conditions, Temperatures.HighF" \ --expression-attribute-names '{ "#S": "State", "#D": "Date" }'
Étape 7 : nettoyer
Pour éviter que votre AWS compte ne soit débité une fois que vous aurez terminé d'utiliser cet exemple, vous devez supprimer le tableau. La suppression de la table supprime l'index secondaire global également. Vous devez également supprimer votre environnement.
Pour supprimer la table, exécutez la commande DynamoDB delete-table en spécifiant le nom de la table (--table-name).
aws dynamodb delete-table --table-name Weather
Si la commande réussit, des informations sur la table s'affichent, y compris la valeur TableStatus de DELETING.
Pour confirmer que la table est supprimée avec succès, exécutez la commande DynamoDB describe-table en spécifiant le nom de la table (--table-name).
aws dynamodb describe-table --table-name Weather
Si la table est supprimée avec succès, un message contenant la phrase Requested
resource not found s'affiche.
Pour supprimer votre environnement, consultez Suppression d'un environnement.