Cree esta aplicación de muestra para descubrir lo sencillas que pueden ser las bases de datos.

Conclusiones clave

  • DynamoDB es una poderosa base de datos NoSQL ofrecida por AWS que puede manejar grandes cantidades de datos diversos sin comprometer el rendimiento, la durabilidad o la confiabilidad.
  • Para comenzar con DynamoDB en Node.js, debe instalar el paquete client-dynamodb desde aws-sdk y configurar sus credenciales.
  • DynamoDB le permite crear tablas, escribir y leer datos, actualizar registros y eliminar registros fácilmente utilizando los métodos y parámetros del cliente. Ofrece flexibilidad y escalabilidad para un desarrollo eficiente de aplicaciones.

Una gran parte del desarrollo de aplicaciones modernas necesita una combinación de lenguajes de programación sólidos y bases de datos potentes.

Una de las soluciones que ofrece Amazon Web Services (AWS) es DynamoDB, una herramienta que puede revolucionar tu gestión de datos. Al usarlo, puede aprovisionar rápidamente una base de datos para manejar grandes cantidades de datos diversos.

instagram viewer

¿Qué es DynamoDB?

AWS ofrece servicios para diferentes necesidades de bases de datos, como Amazon RDS para bases de datos relacionalesy DocumentDB para bases de datos de documentos como MongoDB. DynamoDB es una base de datos NoSQL para almacenar datos en formato clave-valor.

DynamoDB puede manejar grandes cantidades de datos en una infraestructura distribuida sin comprometer el rendimiento, la durabilidad o la confiabilidad. Ofrece un modelo flexible que le permite almacenar y consultar datos fácilmente, ya sean estructurados o no estructurados.

Puede utilizar DynamoDB como base de datos para varios tipos de aplicaciones. Puede acceder a él directamente desde la consola web de AWS y mediante programación a través de AWS-CLI, o desde aplicaciones web que utilizan AWS-SDK.

Primeros pasos con DynamoDB en Node.js

Hay muchos herramientas para crear API de backend en Node.js y eres libre de elegir la base de datos para tu API cuando trabajas con cualquiera de estas herramientas. Node.js brinda amplio soporte para servicios externos, incluidas bases de datos como AWS DynamoDB.

Todo lo que necesita para acceder a un servicio de AWS desde su aplicación Node es el cliente aws-sdk paquete para ese servicio. Por ejemplo, para acceder a DynamoDB, debe instalar el cliente-dynamodb paquete bajo aws-sdk.

Ejecute este comando en el directorio de su proyecto para instalar el paquete:

npm install @aws-sdk/client-dynamodb

Después de instalar aws-sdk/cliente-dynamodb en su proyecto Node.js, debe agregar la región de su tabla de DynamoDB a la configuración antes de interactuar con ella. Hará esto al inicializar el cliente DynamoDB.

Si ha instalado y utilizado AWS-CLI en su computadora anteriormente, probablemente ya tenga las credenciales de AWS configuradas en su entorno y el SDK obtendrá automáticamente sus valores del entorno.

Pero si no lo has hecho, puedes dirigirte al Gestión de acceso a identidades de AWS (IAM) servicio en su consola y cree un nuevo usuario. Después de crear el usuario, puede obtener una ID de clave de acceso y una clave secreta, que son sus credenciales personales.

Agregue estas credenciales a su entorno ejecutando los siguientes comandos de terminal para su plataforma:

En Unix, Linux o macOS:

export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'

En Windows (CMD):

set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'

En Windows (PowerShell):

$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'

Luego, de vuelta en su proyecto Node.js, cree un nuevo archivo y asígnele el nombre dynamodb.js. En este archivo, cree una instancia de un nuevo cliente de AWS DynamoDB utilizando el siguiente código:

const { DynamoDB } = require('@aws-sdk/client-dynamodb')

const region = "us-east-1"// your preferred region

const client = new DynamoDB({ region })

¡Bastante simple! AWS se asegura de que no exponga ninguna de sus credenciales de seguridad en su código, por lo que mientras el código Lo anterior intenta crear el cliente, primero lee la clave de acceso y la clave secreta de su entorno.

La recién creada cliente le permite realizar diversas operaciones, como crear tablas y leer y escribir datos.

DynamoDB no tiene esquema, al igual que otras bases de datos NoSQL, por lo que siempre puede agregar nuevos atributos (campos) a una tabla en cualquier momento. Es por eso que solo necesita agregar atributos que servirán como claves principales para una tabla de DynamoDB al crearla.

Consulte el siguiente código que crea una nueva tabla (Cliente) en DynamoDB:

const createCustomerTable = async () => {
const params = {
TableName: "Customer",
AttributeDefinitions: [
{
AttributeName: "Email",
AttributeType: "S"
},
],
KeySchema: [
{
AttributeName: "Email",
KeyType: "HASH"
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};

client.createTable(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
}

createCustomerTable();

El Definiciones de atributos El campo es donde se definen los atributos clave de la tabla y sus tipos. El Correo electrónico El atributo aquí tiene tipo. S lo que significa que el campo espera una Cadena como su valor. Los tres tipos de atributos disponibles son S, norte, y B (Cadena, Número y Binario).

Necesitas el Esquema clave para definir claves primarias que ayudan a encontrar y organizar elementos rápidamente. DynamoDB espera que los atributos que agregue al crear la tabla sean atributos clave, por lo que el correo electrónico es la clave principal aquí. Debe agregarlo al KeySchema y especificar su Tipo de clave (PICADILLO).

El otro valor KeyType disponible es RANGO que se utiliza para clasificar claves. Las claves de clasificación son útiles en los casos en los que es posible que tenga datos con las mismas claves HASH en una tabla y desee para agruparlos según algunos datos adicionales como fecha o color, puede convertir los datos adicionales en RANGO llave.

El tercer parámetro importante en el código anterior es el Rendimiento aprovisionado. Aquí es donde define la cantidad de lecturas y escrituras que desea que DynamoDb permita en la tabla por segundo.

Cuando ejecuta el código anterior, debería obtener un resultado similar a este:

Si revisa el panel de tablas de DynamoDB en la consola web, verá que la tabla aún está aprovisionada o con el estado de activo ya.

Considere siempre las necesidades de su aplicación al especificar el Unidades de capacidad de lectura y Unidades de capacidad de escritura porque un valor inadecuado puede generar problemas de rendimiento o altos costos de facturación en su cuenta.

Una vez que esté seguro de que la tabla ya está activa, puede realizar operaciones CRUD en ella.

Los siguientes son algunos ejemplos de código que le muestran cómo escribir y leer datos del Cliente mesa.

  1. Agregar datos a la tabla. Para escribir datos en una tabla, necesita la autorización del cliente. poner artículo método. El siguiente código agrega un nuevo cliente al Cliente tabla en DynamoDB.
    const createCustomer = async (customer) => {
    const params = {
    TableName: "Customer",
    Item: customer
    }

    client.putItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log(data)
    }
    })
    }

    const customerData = {
    Name: { "S": "Timilehin O." },
    Email: { "S": "[email protected]" },
    Age: { "N": "18"},
    Country: { "S": "Nigeria" }
    }

    createCustomer(customerData)

    El parámetros objeto contiene el Nombre de la tabla cuál es la mesa en la que estás escribiendo y la Artículo campo que contiene los datos que está agregando con sus tipos específicos. Observe los nuevos campos que inicialmente no estaban en la tabla; así es como DynamoDB funciona de manera flexible. Puede ver los datos en su base de datos en su consola de esta manera:
  2. Leer datos de la tabla.. DynamoDB le permite leer datos de varias maneras. Los SDK escanear La función lee toda la tabla, mientras que obtiene el objeto lee sólo datos específicos. Por ejemplo, el siguiente código obtiene todos los clientes:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

    const customers = await client.scan(params)
    console.log(customers)
    }

    Mientras que el siguiente código obtiene al usuario por el valor del correo electrónico:
    const getCustomerByEmail = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email } // the type is always required
    }
    }

    const customer = await client.getItem(params)
    console.log(customer)
    }

    getCustomerByEmail("[email protected]")

  3. Actualizar datos en la tabla.. Para actualizar los datos existentes en una tabla, utilice el SDK actualizar artículo función. El siguiente código demuestra cómo actualizar un registro específico:
     const updateCustomerLocation = async (email, age) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    },
    UpdateExpression: "SET Age = :newAge",
    ExpressionAttributeValues: {
    ':newAge': { "N": age }
    },
    ReturnValues: "ALL_NEW"
    }

    const updatedCustomer = await client.updateItem(params)
    console.log(updatedCustomer.Attributes)
     }

    También puede optar por hacer que su función sea dinámica creando expresiones de actualización a partir de sus datos de actualización. La flexibilidad de DynamoDB le permite manejar cada operación según sus necesidades.
  4. Eliminar datos de la tabla.. Para eliminar un registro de DynamoDB, necesita el Eliminar elemento función y la clave del registro en particular. A continuación se explica cómo implementarlo:
    const deleteCustomer = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    }
    }

    client.deleteItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log("Customer deleted successfully")
    }
    })
    }

    deleteCustomer("[email protected]")

Creación de aplicaciones eficientes con DynamoDB

Amazon Web Services continúa prosperando. Proporciona una plataforma accesible que puede utilizar para ofrecer soluciones digitales eficientes y seguras. DynamoDB es la elección perfecta si busca una base de datos para ejecutarla sin preocuparse por la infraestructura o la seguridad.

Ahora está equipado con todo lo que necesita para comenzar a usar DynamoDB en Node.js y puede elegir con confianza DynamoDB para su próxima aplicación Node.js.