AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Tutorial su Amazon DynamoDB per AWS Cloud9
Questo tutorial ti consente di configurare un ambiente di AWS Cloud9 sviluppo per lavorare con Amazon DynamoDB.
DynamoDB è un servizio No database completamente gestitoSQL. Puoi utilizzare DynamoDB per creare una tabella di database in grado di archiviare e recuperare qualunque quantità di dati e soddisfare qualsiasi livello di traffico di richiesto. DynamoDB distribuisce automaticamente i dati e il traffico per la tabella su un numero di server sufficiente per gestire la capacità di richieste specificata e la quantità di dati archiviati, garantendo al contempo prestazioni rapide e costanti. Per ulteriori informazioni, consulta Amazon DynamoDB
La creazione di questo esempio potrebbe comportare addebiti sul tuo AWS account. Questi includono eventuali costi per servizi come Amazon EC2 e DynamoDB. Per ulteriori informazioni, consulta i prezzi di Amazon e EC2 i prezzi
Per informazioni sulle offerte di AWS database aggiuntive, consulta Amazon Relational Database Service RDS ()
Prerequisiti
Prima di usare questo esempio, assicurati che la configurazione soddisfi i seguenti requisiti:
-
È necessario disporre di un ambiente di sviluppo esistente AWS Cloud9 EC2. Questo esempio presuppone che tu disponga già di un EC2 ambiente connesso a un'EC2istanza Amazon che esegue Amazon Linux o Ubuntu Server. Se disponi di un altro tipo di ambiente o sistema operativo, potrebbe essere necessario adattare le istruzioni di questo esempio per configurare gli strumenti correlati. Per ulteriori informazioni, consulta Creare un ambiente in AWS Cloud9.
-
Il file AWS Cloud9 IDE per l'ambiente esistente è già aperto. Quando apri un ambiente, AWS Cloud9 apre il IDE relativo ambiente nel tuo browser web. Per ulteriori informazioni, consulta Apertura di un ambiente in AWS Cloud9.
Fase 1: installare e configurare AWS CLI, AWS CloudShell o entrambe nell'ambiente
In questo passaggio, si utilizza il AWS Cloud9 IDE per installare e configurare il AWS CLI, il AWS CloudShell, o entrambi nel proprio ambiente in modo da poter eseguire comandi per interagire con DynamoDB. Quindi si utilizza AWS CLI per eseguire un comando DynamoDB di base per testare l'installazione e la configurazione.
-
Per configurare la gestione delle credenziali per l' AWS CLI o il AWS CloudShell e installare il AWS CLI AWS CloudShell, il o entrambi nell'ambiente, segui i passaggi 1 e 2 nell'AWS CloudShell esempio AWS CLI and, quindi torna a questo argomento. Se avete già installato e configurato il AWS CLI AWS CloudShell, il o entrambi nel vostro ambiente, non è necessario farlo di nuovo.
-
Verifica l'installazione e la configurazione di AWS CLI, della aws-shell o di entrambe eseguendo il
list-tables
comando DynamoDB da una sessione di terminale nel tuo ambiente per elencare le tabelle DynamoDB esistenti, se presenti. Per avviare una nuova sessione del terminale, nella barra dei menu seleziona Windows (Finestre), New Terminal (Nuovo terminale).aws dynamodb list-tables # For the AWS CLI. dynamodb list-tables # For the aws-shell.
Nota
In questo esempio, se stai utilizzando l'aws-shell, ometti
aws
da ogni comando che inizia conaws
. Per avviare l'aws-shell, esegui il comandoaws-shell
. Per interrompere l'utilizzo dell'aws-shell, esegui il comando.exit
o.quit
.Se il comando viene eseguito correttamente, restituisce un array
TableNames
contenente un elenco delle tabelle DynamoDB esistenti che potresti già avere. Se non disponi ancora di tabelle DynamoDB, l'arrayTableNames
sarà vuoto.{ "TableNames": [] }
Se disponi di tabelle DynamoDB, l'array
TableNames
contiene un elenco dei nomi delle tabelle.
Fase 2: creazione di una tabella
In questo fase si crea una tabella in DynamoDB e ne specifichi il nome, il layout, la chiave primaria semplice e le impostazioni della velocità effettiva dei dati.
Questa tabella di esempio, denominata Weather
, contiene informazioni sulle previsioni meteorologiche per alcune città negli Stati Uniti. La tabella contiene i seguenti tipi di informazioni (in DynamoDB, ogni informazione è nota come attributo):
-
ID univoco della città richiesto (
CityID
) -
Data di previsione richiesta (
Date
) -
Nome della città (
City
) -
Nome dello stato (
State
) -
Previsione delle condizioni meteorologiche (
Conditions
) -
Previsione delle temperature (
Temperatures
)-
Previsione elevate, in gradi Fahrenheit (
HighF
) -
Previsione basse, in gradi Fahrenheit (
LowF
)
-
Per creare la tabella, in una sessione terminale in AWS Cloud9 IDE, esegui il comando create-table
DynamoDB.
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
In questo comando:
-
--table-name
rappresenta il nome della tabella (Weather
in questo esempio). I nomi delle tabelle devono essere univoci all'interno di ogni AWS regione dell'account AWS . -
--attribute-definitions
rappresenta gli attributi utilizzati per individuare in modo univoco gli item della tabella. Ciascuno degli elementi di questa tabella è identificato in modo univoco da una combinazione di unID
attributo numerico e un attributo rappresentato come unaDate
stringa formattata ISO -8601. -
--key-schema
rappresenta lo schema della chiave della tabella. Questa tabella dispone di una chiave primaria composita:CityID
eDate
. Ciò significa che ciascuno degli item della tabella deve avere un valore degli attributiCityID
eDate
, ma nessuno dei valori degli attributiCityID
eDate
può coincidere per due item diversi. -
--provisioned-throughput
rappresenta la capacità di lettura-scrittura della tabella. DynamoDB permette un massimo di 5 letture fortemente consistenti al secondo per elementi di dimensioni massime pari a 4 KB oppure un massimo di 5 letture consistenti finali al secondo per elementi di dimensioni massime pari a 4 KB. DynamoDB permette anche fino a 5 scritture al secondo per elementi di dimensioni massime pari a 1 KB.Nota
L'impostazione di un throughput assegnato più elevato potrebbe comportare costi aggiuntivi per l'account. AWS
Per ulteriori informazioni su questo e altri comandi DynamoDB, consulta dynamodb nella documentazione di riferimento ai comandi AWS CLI .
Se questo comando viene eseguito correttamente, vengono visualizzate le informazioni di riepilogo sulla nuova tabella in fase di creazione. Per confermare la corretta creazione della tabella, esegui il comando describe-table
di DynamoDB, specificando il nome della tabella (--table-name
).
aws dynamodb describe-table --table-name Weather
Una volta creata correttamente la tabella, il valore TableStatus
cambia da CREATING
a ACTIVE
. Non procedere oltre questa fase finché la tabella non è stata creata correttamente.
Fase 3: aggiungere un elemento alla tabella
In questa fase, aggiungi un item alla tabella appena creata.
-
Creare un archivio denominato
weather-item.json
con i seguenti contenuti. Per creare un nuovo file, nella barra dei menu seleziona File, New File (Nuovo file). Per salvare il file, seleziona File, Save (Salva).{ "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" } } } }
In questo codice,
N
rappresenta un valore di attributo che è un numero.S
è un valore di attributo della stringa.M
è un attributo di mappa, che è un insieme di coppie attributo-valore. Quando lavori con gli item, devi specificare un tipo di dati per gli attributi. Per ulteriori tipi di dati degli attributi, consulta Tipi di dati nella Guida per gli sviluppatori di Amazon DynamoDB. -
Esegui il comando
put-item
DynamoDB, specificando il nome della tabella--table-name
() e il percorso dell'elemento -formatted (). JSON--item
aws dynamodb put-item \ --table-name Weather \ --item file://weather-item.json
Se il comando viene eseguito correttamente, senza errori e non viene visualizzato alcun messaggio di conferma.
-
Per verificare i contenuti correnti della tabella, esegui il comando
scan
di DynamoDB, specificando il nome della tabella (--table-name
).aws dynamodb scan --table-name Weather
Se il comando viene eseguito correttamente, vengono visualizzate le informazioni sulla tabella e sull'item appena aggiunto.
Fase 4: aggiungere più elementi alla tabella
In questa fase, aggiungi ulteriori item alla tabella Weather
.
-
Creare un archivio denominato
more-weather-items.json
con i seguenti contenuti.{ "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" } } } } } } ] }
In questo codice, 8 oggetti
Item
definiscono gli 8 item da aggiungere alla tabella, simili al singolo item definito nella fase precedente. Tuttavia, quando si esegue il comandobatch-write-item
DynamoDB nel passaggio successivo, è necessario fornire JSON un oggetto con formattazione che includaItem
ogni oggetto in un oggetto contenitore.PutRequest
Quindi devi includere tali oggettiPutRequest
in un array padre che abbia lo stesso nome della tabella. -
Esegui il comando
batch-write-item
DynamoDB, specificando il percorso degli elementi in formato -format da JSON aggiungere ().--request-items
aws dynamodb batch-write-item \ --request-items file://more-weather-items.json
Se il comando viene eseguito correttamente, viene visualizzato il messaggio seguente, a conferma che gli item sono stati aggiunti correttamente.
{ "UnprocessedItems": {} }
-
Per confermare i contenuti correnti della tabella, esegui di nuovo il comando
scan
di DynamoDB.aws dynamodb scan --table-name Weather
Se il comando viene eseguito correttamente, adesso sono visualizzati 9 item.
Fase 5: creare un indice secondario globale
L'esecuzione del comando scan
di DynamoDB per ottenere le informazioni sulle voci può risultare un'operazione lenta, specialmente quando le dimensioni di una tabella aumentano o se il tipo di informazioni da ottenere è complesso. Per velocizzare l'operazione e rendere più semplice il recupero delle informazioni, puoi creare uno o più indici secondari. In questa fase sono illustrati due tipi di indici secondari supportati da DynamoDB a tale scopo. Si tratta dell'indice secondario locale e dell'indice secondario globale. Quindi, potrai creare un indice secondario globale.
Per comprendere questi tipi di indice secondario, devi prima conoscere le chiavi primarie, che identificano in modo univoco gli elementi di una tabella. DynamoDB supporta una chiave primaria semplice o una chiave primaria composita. Una chiave primaria semplice dispone di un singolo attributo, il cui valore deve essere univoco per ogni item della tabella. Questo attributo è noto anche come chiave di partizione (o attributo hash), che DynamoDB può utilizzare per eseguire una partizione degli elementi per accelerare l'accesso. Una tabella può inoltre avere una chiave primaria composita, che contiene due attributi. Il primo attributo è la chiave di partizione e il secondo è una chiave di ordinamento (nota anche come attributo di intervallo). In una tabella con una chiave primaria composita, due item possono avere lo stesso valore della chiave di partizione, ma non anche lo stesso valore della chiave di ordinamento. La tabella Weather
dispone di una chiave primaria composita.
Un indice secondario locale ha la medesima chiave di partizione della tabella, ma questo tipo di indice può avere una chiave di ordinamento diversa. Un indice secondario globale può avere una chiave di partizione e una chiave di ordinamento entrambe diverse dalla tabella.
Ad esempio, puoi già utilizzare la chiave primaria per accedere agli item di Weather
per CityID
. Per accedere agli item di Weather
per State
, puoi creare un indice secondario locale con la stessa chiave di partizione di CityID
(deve essere lo stesso della tabella) e una chiave di ordinamento di State
. Per accedere agli item di Weather
per City
, puoi creare un indice secondario globale con una chiave di partizione di City
e una chiave di ordinamento di Date
.
Puoi creare indici secondari locali solo durante la creazione di una tabella. Poiché la tabella Weather
esiste già, non puoi aggiungervi alcun indice secondario locale, ma puoi aggiungervi degli indici secondari globali. Prova ad aggiungerne uno adesso.
Nota
La creazione di indici secondari potrebbe comportare ulteriori addebiti sull'account AWS .
-
Creare un archivio denominato
weather-global-index.json
con i seguenti contenuti.[ { "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 } } } ]
In questo codice:
-
Il nome dell'indice secondario globale è
weather-global-index
. -
L'attributo
City
è la chiave di partizione (attributo hash) e l'attributoDate
è la chiave di ordinamento (attributo di intervallo). -
Projection
definisce gli attributi da recuperare per impostazione predefinita (oltre all'attributo hash e a qualsiasi attributo di intervallo) per ogni item che corrisponde a una ricerca nella tabella che utilizza questo indice. In questo esempio, gli attributiState
,Conditions
,HighF
(parte diTemperatures
) eLowF
(parte diTemperatures
) (oltre agli attributiCity
eDate
) vengono recuperati per ogni item corrispondente. -
Analogamente alle tabelle, un indice secondario globale deve definire le relative impostazioni per il throughput assegnato.
-
Le impostazioni
IndexName
,KeySchema
,Projection
eProvisionedThroughput
devono essere contenute in un oggettoCreate
, che definisce l'indice secondario globale da creare quando si esegue il comandoupdate-table
di DynamoDB nella fase successiva.
-
-
Esegui il comando
update-table
di DynamoDB.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.json
In questo comando:
-
--table-name
è il nome della tabella da aggiornare. -
--attribute-definitions
sono gli attributi da includere nell'indice. La chiave di partizione è sempre elencati per prima e qualsiasi chiave di ordinamento è sempre elencata per seconda. -
--global-secondary-index-updates
è il percorso del file che definisce l'indice secondario globale.
Se questo comando viene eseguito correttamente, vengono visualizzate le informazioni di riepilogo sul nuovo indice secondario globale in fase di creazione. Per confermare la corretta creazione dell'indice secondario globale, esegui il comando
describe-table
di DynamoDB, specificando il nome della tabella (--table-name
).aws dynamodb describe-table --table-name Weather
Una volta creato correttamente l'indice secondario globale, il valore di
TableStatus
cambia daUPDATING
aACTIVE
e il valore diIndexStatus
daCREATING
aACTIVE
. Non procedere oltre questa fase finché l'indice secondario globale non è stato creato correttamente. Questo processo può richiedere diversi minuti. -
Fase 6: ottenere elementi dalla tabella
Esistono molti modi per ottenere gli item dalle tabelle. In questa fase, otterrai gli item utilizzando la chiave primaria e gli altri attributi della tabella e utilizzando l'indice secondario globale.
Per ottenere un singolo item da una tabella in base al valore della chiave primaria dell'item
Se conosci il valore della chiave primaria di elemento, puoi ottenere l'elemento corrispondente eseguendo i comandi get-item
, scan
o query
. Di seguito sono elencate le principali differenze tra questi comandi:
-
get-item
restituisce un insieme di attributi della voce con la chiave primaria indicata. -
scan
restituisce una o più voci e i relativi attributi accedendo a ogni voce in una tabella o un indice secondario. -
query
rileva le voci in base ai valori della chiave primaria. Puoi eseguire una query su qualsiasi tabella o indice secondario che abbia una chiave primaria composita (una chiave di partizione e una chiave di ordinamento).
In questo esempio, ti mostriamo come utilizzare ciascuno di questi comandi per ottenere l'item che contiene il valore CityID
dell'attributo 1
e il valore Date
dell'attributo 2017-04-12
.
-
Per eseguire il comando
get-item
di DynamoDB, specifica il nome della tabella (--table-name
), il valore della chiave primaria (--key
) e i valori degli attributi dell'elemento da visualizzare (--projection-expression
). PoichéDate
è una parola chiave riservata in DynamoDB, devi fornire anche un alias per il valore di attributoDate
(--expression-attribute-names
) (ancheState
è una parola chiave riservata, quindi ne visualizzerai un alias nelle fasi successive).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" }'
In questo e negli altri comandi, per visualizzare tutti gli attributi dell'item, non includere
--projection-expression
. In questo esempio, dato che non stai includendo--projection-expression
non hai bisogno di includere neanche--expression-attribute-names
.aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }'
-
Per eseguire il comando
scan
di DynamoDB, specifica:-
Nome della tabella (
--table-name
). -
Ricerca da eseguire (
--filter-expression
). -
Criteri di ricerca da utilizzare (
--expression-attribute-values
). -
Tipi di attributi da visualizzare per l'item corrispondente (
--select
). -
Valori degli attributi per l'item da visualizzare (
--projection-expression
). -
Se qualcuno degli attributi utilizza parole chiave riservate in DynamoDB, per quegli attributi saranno impiegati degli alias (
--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" }'
-
-
Per eseguire il comando
query
di DynamoDB, specifica:-
Nome della tabella (
--table-name
). -
Ricerca da eseguire (
--key-condition-expression
). -
Valori degli attributi da utilizzare nella ricerca (
--expression-attribute-values
). -
Tipi di attributi da visualizzare per l'item corrispondente (
--select
). -
Valori degli attributi per l'item da visualizzare (
--projection-expression
). -
Se qualcuno degli attributi utilizza parole chiave riservate in DynamoDB, per quegli attributi saranno impiegati degli alias (
--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" }'
Nota che il comando
scan
ha dovuto eseguire la scansione di tutte e 9 le voci per ottenere il risultato, mentre il comandoquery
ha dovuto eseguire la scansione solo di 1 voce. -
Per ottenere più item da una tabella in base ai valori della relativa chiave primaria
Se conosci i valori della chiave primaria delle voci, puoi ottenere gli elementi corrispondenti eseguendo il comando batch-get-item
di DynamoDB. In questo esempio, ecco come puoi ottenere gli item che contengono il valore CityID
dell'attributo 3
e i valori Date
o 2017-04-13
dell'attributo 2017-04-14
.
Esegui il comando batch-get-item
di DynamoDB, specificando il percorso di un file che descrive gli elementi da ottenere (--request-items
).
aws dynamodb batch-get-item --request-items file://batch-get-item.json
Per questo esempio, il codice nel file batch-get-item.json
specifica di ricercare nella tabella Weather
gli item con CityID
3
e con Date
2017-04-13
o 2017-04-14
. Per ogni item individuato, vengono visualizzati i valori degli attributi City
, State
, Date
e HighF
(parte di Temperatures
), se esistenti.
{ "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" } } }
Per ottenere tutti gli item corrispondenti da una tabella
Se conosci i valori degli attributi nella tabella, puoi ottenere gli elementi corrispondenti eseguendo il comando scan
di DynamoDB. In questo esempio, ecco come puoi ottenere le date se il valore dell'attributo Conditions
contiene Sunny
e il valore dell'attributo HighF
(parte di Temperatures
) è superiore a 53
.
Esegui il comando scan
di DynamoDB, specificando:
-
Nome della tabella (
--table-name
). -
Ricerca da eseguire (
--filter-expression
). -
Criteri di ricerca da utilizzare (
--expression-attribute-values
). -
Tipi di attributi da visualizzare per l'item corrispondente (
--select
). -
Valori degli attributi per l'item da visualizzare (
--projection-expression
). -
Se qualcuno degli attributi utilizza parole chiave riservate in DynamoDB, per quegli attributi saranno impiegati degli alias (
--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" }'
Per ottenere tutti gli item corrispondenti da un indice secondario globale
Per eseguire la ricerca utilizzando un indice secondario globale, utilizza il comando query
di DynamoDB. In questo esempio, ecco come puoi utilizzare l'indice secondario weather-global-index
per ottenere le previsioni delle città denominate Portland
per le date 2017-04-13
e 2017-04-14
.
Esegui il comando query
di DynamoDB, specificando:
-
Nome della tabella (
--table-name
). -
Nome dell'indice secondario globale (
--index-name
). -
Ricerca da eseguire (
--key-condition-expression
). -
Valori degli attributi da utilizzare nella ricerca (
--expression-attribute-values
). -
Tipi di attributi da visualizzare per l'item corrispondente (
--select
). -
Se qualcuno degli attributi utilizza parole chiave riservate in DynamoDB, per quegli attributi saranno impiegati degli alias (
--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" }'
Fase 7: pulire
Per evitare addebiti continui sul tuo AWS account dopo aver finito di utilizzare questo esempio, dovresti eliminare la tabella. Eliminando la tabella viene eliminato anche l'indice secondario globale. Devi eliminare anche l'ambiente.
Per eliminare la tabella, esegui il comando delete-table
di DynamoDB, specificando il nome della tabella (--table-name
).
aws dynamodb delete-table --table-name Weather
Se il comando viene eseguito correttamente, vengono visualizzate le informazioni sulla tabella, incluso il valore TableStatus
di DELETING
.
Per confermare la corretta eliminazione della tabella, esegui il comando describe-table
di DynamoDB, specificando il nome della tabella (--table-name
).
aws dynamodb describe-table --table-name Weather
Se la tabella viene eliminata correttamente, viene visualizzato un messaggio contenente la frase Requested
resource not found
(Risorsa richiesta non trovata).
Per eliminare l'ambiente, consulta Eliminazione di un ambiente.