Tutorial su Amazon DynamoDB per AWS Cloud9 - AWS Cloud9

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 sul sito Web. AWS

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 di Amazon DynamoDB.

Per informazioni sulle offerte di AWS database aggiuntive, consulta Amazon Relational Database Service RDS (), Amazon e ElastiCache Amazon Redshift sul sito Web. AWS Consulta anche AWS Database Migration Service sul sito Web AWS .

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.

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

  2. Verifica l'installazione e la configurazione di AWS CLI, della aws-shell o di entrambe eseguendo il list-tablescomando 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 con aws. Per avviare l'aws-shell, esegui il comando aws-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'array TableNames 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-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

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 un ID attributo numerico e un attributo rappresentato come una Date stringa formattata ISO -8601.

  • --key-schema rappresenta lo schema della chiave della tabella. Questa tabella dispone di una chiave primaria composita: CityID e Date. Ciò significa che ciascuno degli item della tabella deve avere un valore degli attributi CityID e Date, ma nessuno dei valori degli attributi CityID e Date 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.

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

  2. Esegui il comando put-itemDynamoDB, 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.

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

  1. 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 comando batch-write-itemDynamoDB nel passaggio successivo, è necessario fornire JSON un oggetto con formattazione che includa Item ogni oggetto in un oggetto contenitore. PutRequest Quindi devi includere tali oggetti PutRequest in un array padre che abbia lo stesso nome della tabella.

  2. Esegui il comando batch-write-itemDynamoDB, 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": {} }
  3. 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 .

  1. 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'attributo Date è 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 attributi State, Conditions, HighF (parte di Temperatures) e LowF (parte di Temperatures) (oltre agli attributi City e Date) 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 e ProvisionedThroughput devono essere contenute in un oggetto Create, che definisce l'indice secondario globale da creare quando si esegue il comando update-table di DynamoDB nella fase successiva.

  2. 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 da UPDATING a ACTIVE e il valore di IndexStatus da CREATING a ACTIVE. 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.

  1. 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 attributo Date (--expression-attribute-names) (anche State è 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" } }'
  2. 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" }'
  3. 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 comando query 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.