Tutorial de Amazon DynamoDB para AWS Cloud9 - AWS Cloud9

AWS Cloud9 ya no está disponible para los nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Tutorial de Amazon DynamoDB para AWS Cloud9

Este tutorial le permite configurar un entorno de desarrollo de AWS Cloud9 para trabajar con Amazon DynamoDB.

DynamoDB es una base de datos NoSQL completamente administrada. Puede utilizar DynamoDB para crear una tabla de base de datos capaz de almacenar y recuperar cualquier cantidad de datos, así como de atender cualquier nivel de tráfico de solicitudes. DynamoDB distribuye automáticamente los datos y el tráfico de la tabla entre un número de servidores suficiente como para administrar la capacidad de solicitudes especificada y la cantidad de datos almacenados, manteniendo al mismo tiempo un rendimiento uniforme y rápido. Para obtener más información, consulte Amazon DynamoDB en la página web de AWS.

La creación de esta muestra puede generar cargos en su cuenta de AWS. Estos incluyen posibles cargos por servicios como Amazon EC2 y DynamoDB. Para obtener más información, consulte Precios de Amazon EC2 y Precios de Amazon DynamoDB.

Para obtener más información sobre otras ofertas de base de datos de AWS, consulte Amazon Relational Database Service (RDS), Amazon ElastiCache y Amazon Redshift en el sitio web de AWS. Consulte también AWS Database Migration Service en el sitio web de AWS.

Requisitos previos

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:

  • Debe tener un entorno de desarrollo de AWS Cloud9 EC2. En este ejemplo, se da por hecho que ya tiene un entorno de EC2 que está conectado a una instancia de Amazon EC2 que ejecuta Amazon Linux o Ubuntu Server. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte Creación de un entorno en AWS Cloud9.

  • Ya tiene abierto el IDE de AWS Cloud9 para el entorno existente. Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte Apertura de un entorno en AWS Cloud9.

Paso 1: instalar y configurar la AWS CLI, el AWS CloudShell o ambos en el entorno

En este paso, utilizará el IDE de AWS Cloud9 para instalar y configurar la AWS CLI, el AWS CloudShell o ambos en su entorno para poder ejecutar comandos para interactuar con DynamoDB. A continuación, utilice AWS CLI para ejecutar un comando de DynamoDB básico para probar la instalación y la configuración.

  1. Para configurar la administración de credenciales para la AWS CLI o el AWS CloudShell y para instalar la AWS CLI, el AWS CloudShell o ambos en su entorno, siga los pasos 1 y 2 de Muestra de AWS CLI y AWS CloudShell y, a continuación, vuelva a este tema. Si ya ha instalado y configurado la AWS CLI, el AWS CloudShell o ambos en su entorno, no es necesario hacerlo de nuevo.

  2. Pruebe la instalación y configuración de AWS CLI, aws-shell o ambos ejecutando el comando list-tables desde una sesión del terminal en su entorno para obtener una lista de las tablas de DynamoDB, si hay alguna. Para comenzar una nueva sesión de terminal, en la barra de menús, seleccione Windows (Ventanas), New Terminal (Nuevo terminal).

    aws dynamodb list-tables # For the AWS CLI. dynamodb list-tables # For the aws-shell.
    nota

    En este ejemplo, si está utilizando el aws-shell, omita aws de cada comando que comience por aws. Para iniciar el shell de AWS, ejecute el comando aws-shell . Para dejar de usar el shell de AWS, ejecute el comando .exit o .quit .

    Si este comando se ejecuta correctamente, genera una matriz TableNames que contiene una lista de tablas de DynamoDB existentes que es posible que ya tenga. Si no tiene aún tablas de DynamoDB, la matriz de TableNames estará vacía.

    { "TableNames": [] }

    Si tiene cualquier tabla de DynamoDB, la matriz de TableNames contiene una lista de los nombres de las tablas.

Paso 2: Crear una tabla

En este paso, se crea una tabla en DynamoDB y se especifica el nombre de la tabla, el diseño, la clave principal simple y la configuración de rendimiento de los datos.

Esta tabla de ejemplo, denominada Weather, contiene información acerca de las previsiones meteorológicas para algunas ciudades de Estados Unidos. La tabla contiene los siguientes tipos de información (en DynamoDB, cada fragmento de información se denomina atributo):

  • ID único y obligatorio de la ciudad (CityID)

  • Fecha de previsión obligatoria (Date)

  • Nombre de ciudad (City)

  • Nombre de estado (State)

  • Condiciones meteorológicas de la previsión (Conditions)

  • Temperaturas de la previsión (Temperatures)

    • Temperatura máxima de la previsión, en grados Fahrenheit (HighF)

    • Temperatura mínima de la previsión, en grados Fahrenheit (LowF)

Para crear la tabla, en una sesión del terminal del IDE de AWS Cloud9, ejecute el comando create-table de 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

En este comando:

  • --table-name representa el nombre de la tabla (Weather en este ejemplo). Los nombres de tabla deben ser únicos de cada región de AWS de la cuenta de AWS.

  • --attribute-definitions representa los atributos que se utilizan para identificar de forma única los elementos de la tabla. Cada uno de los elementos de esta tabla se identifica de forma única por medio de una combinación de un atributo ID numérico y un atributo Date representado como una cadena con formato ISO-8601.

  • --key-schema representa el esquema de claves de la tabla. Esta tabla tiene una clave principal compuesta de CityID y Date. Esto significa que cada uno de los elementos de la tabla debe tener un valor de atributo CityID y un valor de atributo Date, pero no puede haber dos elementos de la tabla que tengan el mismo valor de atributo CityID y valor de atributo Date.

  • --provisioned-throughput representa la capacidad de lectura-escritura de la tabla. DynamoDB permite hasta 5 lecturas de alta consistencia por segundo para elementos de hasta 4 KB de tamaño o hasta 5 lecturas eventualmente consistentes por segundo para los elementos de hasta 4 KB de tamaño. DynamoDB también permite hasta 5 escrituras por segundo para los elementos con un tamaño de hasta 1 KB.

    nota

    Si se establece un rendimiento aprovisionado mayor, se podrían generar cargos adicionales en la cuenta de AWS.

    Para obtener más información acerca de este comando y otros comandos de DynamoDB, consulte dynamodb, en la Referencia de comandos de AWS CLI.

Si este comando se ejecuta correctamente, se muestra información resumida sobre la tabla nueva que se está creando. Para confirmar que la tabla se ha creado correctamente, ejecute el comando describe-table de DynamoDB y especifique el nombre de la tabla (--table-name).

aws dynamodb describe-table --table-name Weather

Cuando la tabla se crea correctamente, el valor de TableStatus cambia de CREATING a ACTIVE. No siga realizando los pasos hasta que la tabla se haya creado correctamente.

Paso 3: Agregar un elemento a la tabla

En este paso, se añade un elemento a la tabla que se acaba de crear.

  1. Cree un archivo llamado weather-item.json con el siguiente contenido. Para crear un archivo nuevo, en la barra de menús, elija File (Archivo), New File (Nuevo archivo). Para guardar el archivo, elija File (Archivo), Save (Guardar).

    { "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" } } } }

    En este código, N representa un valor de atributo que es un número. S es un valor de atributo de cadena. M es un atributo de mapa, que es un conjunto de pares de atributo-valor. Debe especificar un tipo de datos del atributo siempre que trabaje con elementos. Para obtener tipos de datos de atributos disponibles adicionales, consulte Tipos de datos en la Guía para desarrolladores de Amazon DynamoDB.

  2. Ejecute el comando put-item de DynamoDB y especifique el nombre de la tabla (--table-name) y la ruta del elemento con formato JSON (--item).

    aws dynamodb put-item \ --table-name Weather \ --item file://weather-item.json

    Si el comando se ejecuta correctamente, no habrá errores y no aparecerá ningún mensaje de confirmación.

  3. Para confirmar el contenido actual de la tabla, ejecute el comando scan de DynamoDB y especifique el nombre de la tabla (--table-name).

    aws dynamodb scan --table-name Weather

    Si el comando se ejecuta correctamente, aparece la información resumida sobre la tabla y el elemento que acaba de agregar.

Paso 4: Agregar varios elementos a la tabla

En este paso, agregamos varios elementos más a la tabla Weather.

  1. Cree un archivo llamado more-weather-items.json con el siguiente contenido.

    { "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" } } } } } } ] }

    En este código, hay 8 objetos Item que definen los 8 elementos que se van a añadir a la tabla, de forma similar al elemento único que se ha definido en el paso anterior. Sin embargo, al ejecutar el comando batch-write-item de DynamoDB en el siguiente paso, debe proporcionar un objeto con formato JSON que incluya cada uno de los objetos Item en un objeto PutRequest contenedor. A continuación, debe incluir esos objetos PutRequest en una matriz principal que tenga el mismo nombre que la tabla.

  2. Ejecute el comando batch-write-item de DynamoDB y especifique la ruta de los elementos con formato JSON que se van a agregar (--request-items).

    aws dynamodb batch-write-item \ --request-items file://more-weather-items.json

    Si el comando se ejecuta correctamente, se muestra el siguiente mensaje, que confirma que los elementos se han agregado correctamente.

    { "UnprocessedItems": {} }
  3. Para confirmar el contenido actual de la tabla, ejecute de nuevo el comando scan de DynamoDB.

    aws dynamodb scan --table-name Weather

    Si el comando se ejecuta correctamente, ahora se muestran 9 elementos.

Paso 5: Crear un índice secundario global

La ejecución del comando scan de DynamoDB para obtener información sobre elementos puede ser lenta, especialmente cuando la tabla aumenta de tamaño o si el tipo de información que desea obtener es complejo. Puede crear uno o varios índices secundarios para acelerar las cosas y obtener información más fácilmente. En este paso, conocerá dos tipos de índices secundarios que DynamoDB admite para hacer precisamente eso. Se denominan índice secundario local e índice secundario global. A continuación, se crea un índice secundario global.

Para comprender estos tipos de índices secundarios, primero debe conocer las claves primarias, que identifican de forma única los elementos de una tabla. DynamoDB admite una clave principal simple o una clave principal compuesta. Una clave principal simple posee un único atributo y ese valor del atributo debe ser único para cada elemento de la tabla. Este atributo también se conoce como clave de partición (o un atributo hash), que DynamoDB puede utilizar para particionar elementos para que el acceso sea más rápido. Una tabla también puede tener una clave principal compuesta, que contiene dos atributos. El primer atributo es la clave de partición y el segundo es una clave de ordenación (también conocida como atributo de rango). En una tabla con una clave principal compuesta, puede haber dos elementos que tengan el mismo valor de clave de partición, pero no pueden tener también el mismo valor de clave de ordenación. La tabla Weather tiene una clave principal compuesta.

Un índice secundario local tiene la misma clave de partición que la propia tabla, pero este tipo de índice puede tener una clave de ordenación diferente. Un índice secundario global puede tener una clave de partición y una clave de ordenación que son diferentes a la tabla en sí.

Por ejemplo, ya puede utilizar la clave principal para obtener acceso a elementos Weather por CityID. Para obtener acceso a los elementos Weather por State, puede crear un índice secundario local que tenga una clave de partición de CityID (debe ser la misma que la tabla) y una clave de ordenación de State. Para obtener acceso a los elementos Weather por City, puede crear un índice secundario global que tenga una clave de partición de City y una clave de ordenación de Date.

Solo puede crear índices secundarios locales mientras está creando una tabla. Dado que la tabla Weather ya existe, no puede añadirle cualquier índice secundario local. Sin embargo, puede añadir índices secundarios globales. Añada uno ahora para practicar.

nota

La creación de índices secundarios puede producir cargos adicionales en su cuenta de AWS.

  1. Cree un archivo llamado weather-global-index.json con el siguiente contenido.

    [ { "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 } } } ]

    En este código:

    • El nombre del índice secundario global es weather-global-index.

    • El atributo City es la clave de partición (atributo hash) y el atributo Date es la clave de ordenación (atributo de rango).

    • Projection define los atributos que se van a recuperar de forma predeterminada (además del atributo hash y cualquier atributo de rango) por cada elemento que coincida con una búsqueda de tabla que utilice este índice. En este ejemplo, se recuperan los atributosState, Conditions, HighF (parte de Temperatures) y LowF ( Temperatures) (así como los atributos City y Date) para cada elemento coincidente.

    • Al igual que las tablas, un índice secundario global debe definir su configuración de desempeño aprovisionado.

    • La configuración de IndexName, KeySchema, Projection y ProvisionedThroughput debe estar incluida en un objeto Create, que define el índice secundario global que se va a crear al ejecutar el comando update-table de DynamoDB en el siguiente paso.

  2. Ejecute el comando update-table de 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

    En este comando:

    • --table-name es el nombre de la tabla que se va a actualizar.

    • --attribute-definitions son los atributos que se van a incluir en el índice. La clave de partición siempre aparece primero y cualquier clave de ordenación aparece siempre en segundo lugar.

    • --global-secondary-index-updates es la ruta al archivo que define el índice secundario global.

    Si este comando se ejecuta correctamente, se muestra información resumida sobre el nuevo índice secundario global que se está creando. Para confirmar que el índice secundario global se ha creado correctamente, ejecute el comando describe-table de DynamoDB y especifique el nombre de la tabla (--table-name).

    aws dynamodb describe-table --table-name Weather

    Cuando el índice secundario global se haya creado correctamente, el valor de TableStatus cambia de UPDATING a ACTIVE y el valor de IndexStatus cambia de CREATING a ACTIVE. No siga realizando los pasos hasta que el índice secundario global se haya creado correctamente. Esto puede tardar varios minutos.

Paso 6: Obtener elementos de la tabla

Existen muchas formas de obtener elementos de las tablas. En este paso, se obtienen elementos mediante la clave principal de la tabla, mediante otros atributos de la tabla y utilizando el índice secundario global.

Para obtener un solo elemento de una tabla en función del valor de la clave principal del elemento

Si conoce el valor de la clave principal del elemento, puede obtener el elemento coincidente ejecutando el comando get-item , scan o query de DynamoDB. A continuación, se muestran las principales diferencias en estos comandos:

  • get-item devuelve un conjunto de atributos del elemento con la clave principal especificada.

  • scan devuelve uno o más elementos y atributos de elementos obteniendo acceso a todos los elementos de una tabla o un índice secundario.

  • query busca elementos según los valores de clave principal. Puede consultar cualquier tabla o índice secundario que cuente con una clave principal compuesta (una clave de partición y una clave de ordenación).

En este ejemplo, así es cómo se utiliza cada uno de estos comandos para obtener el elemento que contiene el valor del atributo CityID de 1 y el valor del atributo Date de 2017-04-12.

  1. Para ejecutar el comando get-item de DynamoDB, especifique el nombre de la tabla (--table-name), el valor de clave principal (--key) y los valores de los atributos del elemento que se va a mostrar (--projection-expression). Dado que Date es una palabra clave reservada en DynamoDB, también debe proporcionar un alias para el valor del atributo Date (--expression-attribute-names). (State también es una palabra clave reservada, por lo que verá un alias proporcionado para este valor en pasos posteriores).

    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" }'

    En este y otros comandos, para ver todos los atributos del elemento, no incluya --projection-expression. En este ejemplo, dado que no está incluyendo --projection-expression, tampoco es necesario incluir --expression-attribute-names.

    aws dynamodb get-item \ --table-name Weather \ --key '{ "CityID": { "N": "1" }, "Date": { "S": "2017-04-12" } }'
  2. Para ejecutar el comando scan de DynamoDB, especifique:

    • El nombre de la tabla (--table-name).

    • La búsqueda que se va a realizar (--filter-expression).

    • Los criterios de búsqueda que se van a utilizar (--expression-attribute-values).

    • Los tipos de atributos que se van a mostrar del elemento coincidente (--select).

    • Los valores de atributos del elemento que se va a mostrar (--projection-expression).

    • Si alguno de los atributos utiliza palabras reservadas de DynamoDB, los alias de esos atributos (--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. Para ejecutar el comando query de DynamoDB, especifique:

    • El nombre de la tabla (--table-name).

    • La búsqueda que se va a realizar (--key-condition-expression).

    • Los valores de los atributos que se van a utilizar en la búsqueda (--expression-attribute-values).

    • Los tipos de atributos que se van a mostrar del elemento coincidente (--select).

    • Los valores de atributos del elemento que se va a mostrar (--projection-expression).

    • Si alguno de los atributos utiliza palabras reservadas de DynamoDB, los alias de esos atributos (--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" }'

    Fíjese en que el comando scan ha tenido que analizar los 9 elementos para obtener el resultado, mientras que el comando query solo ha tenido que analizar 1 elemento.

Para obtener varios elementos de una tabla en función de los valores de la clave principal de los elementos

Si conoce los valores de la clave principal de los elementos, puede obtener los elementos coincidentes ejecutando el comando batch-get-item de DynamoDB. En este ejemplo, se muestra cómo se obtienen los elementos que contienen el valor del atributo CityID de 3 y los valores del atributo Date de 2017-04-13 o 2017-04-14.

Ejecute el comando batch-get-item de DynamoDB y especifique la ruta a un archivo que describa los elementos que se van a obtener (--request-items).

aws dynamodb batch-get-item --request-items file://batch-get-item.json

Para este ejemplo, el código del archivo batch-get-item.json especifica que se deben buscar en la tabla Weather los elementos con un CityID de 3 y un Date de 2017-04-13 o 2017-04-14. Para cada elemento encontrado, se muestran los valores de atributo de CityState, Date y HighF (parte de Temperatures), si existen.

{ "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" } } }

Para obtener todos los elementos coincidentes de una tabla

Si conoce algo sobre los valores de los atributos de la tabla, puede obtener los elementos coincidentes mediante la ejecución del comando scan de DynamoDB. En este ejemplo, se muestra cómo se obtienen las fechas cuando el valor del atributo Conditions contiene Sunny y el valor del atributo HighF (parte de Temperatures) es mayor que 53.

Especifique lo siguiente para ejecutar el comando scan de DynamoDB:

  • El nombre de la tabla (--table-name).

  • La búsqueda que se va a realizar (--filter-expression).

  • Los criterios de búsqueda que se van a utilizar (--expression-attribute-values).

  • Los tipos de atributos que se van a mostrar del elemento coincidente (--select).

  • Los valores de atributos del elemento que se va a mostrar (--projection-expression).

  • Si alguno de los atributos utiliza palabras reservadas de DynamoDB, los alias de esos atributos (--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" }'

Para obtener todos los elementos coincidentes de un índice secundario global

Para realizar una búsqueda mediante un índice secundario global, utilice el comando query de DynamoDB. En este ejemplo, se muestra cómo se utiliza el índice secundario weather-global-index para obtener las condiciones de la previsión en ciudades con el nombre Portland para las fechas 2017-04-13 y 2017-04-14.

Especifique lo siguiente para ejecutar el comando query de DynamoDB:

  • El nombre de la tabla (--table-name).

  • El nombre del índice secundario global (--index-name).

  • La búsqueda que se va a realizar (--key-condition-expression).

  • Los valores de los atributos que se van a utilizar en la búsqueda (--expression-attribute-values).

  • Los tipos de atributos que se van a mostrar del elemento coincidente (--select).

  • Si alguno de los atributos utiliza palabras reservadas de DynamoDB, los alias de esos atributos (--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" }'

Paso 7: limpiar

Para evitar que se apliquen cargos continuos en su cuenta de AWS después de terminar de usar esta muestra, elimine la tabla. Al eliminar la tabla, también se elimina el índice secundario global. También debe eliminar su entorno.

Para eliminar la tabla, ejecute el comando delete-table de DynamoDB y especifique el nombre de la tabla (--table-name).

aws dynamodb delete-table --table-name Weather

Si el comando se ejecuta correctamente, se muestra información sobre la tabla, incluido el valor de TableStatus de DELETING.

Para confirmar que la tabla se ha eliminado correctamente, ejecute el comando describe-table de DynamoDB y especifique el nombre de la tabla (--table-name).

aws dynamodb describe-table --table-name Weather

Si la tabla se elimina correctamente, se muestra un mensaje que contiene la frase Requested resource not found.

Para eliminar su entorno, consulte Eliminación de entornos.