Créez cet exemple d'application pour découvrir à quel point les bases de données peuvent être simples.

Points clés à retenir

  • DynamoDB est une puissante base de données NoSQL proposée par AWS qui peut gérer de grandes quantités de données diverses sans compromettre les performances, la durabilité ou la fiabilité.
  • Pour démarrer avec DynamoDB dans Node.js, vous devez installer le package client-dynamodb à partir de aws-sdk et configurer vos informations d'identification.
  • DynamoDB vous permet de créer facilement des tables, d'écrire et de lire des données, de mettre à jour et de supprimer des enregistrements à l'aide des méthodes et paramètres du client. Il offre flexibilité et évolutivité pour un développement d’applications efficace.

Une grande partie du développement d’applications modernes nécessite un mélange de langages de programmation robustes et de bases de données puissantes.

L'une des solutions proposées par Amazon Web Services (AWS) est DynamoDB, un outil qui peut révolutionner la gestion de vos données. Grâce à lui, vous pouvez rapidement provisionner une base de données pour gérer de grandes quantités de données diverses.

Qu'est-ce que DynamoDB?

AWS propose des services pour différents besoins de bases de données, comme Amazon RDS pour les bases de données relationnelleset DocumentDB pour bases de données de documents telles que MongoDB. DynamoDB est une base de données NoSQL permettant de stocker des données dans un format clé-valeur.

DynamoDB peut gérer de grandes quantités de données sur une infrastructure distribuée sans compromettre les performances, la durabilité ou la fiabilité. Il offre un modèle flexible, vous permettant de stocker et d'interroger facilement des données, qu'elles soient structurées ou non structurées.

Vous pouvez utiliser DynamoDB comme base de données pour différents types d'applications. Vous pouvez y accéder directement depuis la console Web AWS et par programme via AWS-CLI, ou depuis des applications Web utilisant le AWS-SDK.

Premiers pas avec DynamoDB dans Node.js

Il y a beaucoup de outils pour créer des API backend dans Node.js et vous êtes libre de choisir la base de données pour votre API lorsque vous travaillez avec l'un de ces outils. Node.js offre une large prise en charge des services externes, notamment des bases de données comme AWS DynamoDB.

Tout ce dont vous avez besoin pour accéder à un service AWS depuis votre application Node est le client. aws-sdk forfait pour ce service. Par exemple, pour accéder à DynamoDB, vous devez installer le client-dynamodb paquet sous aws-sdk.

Exécutez cette commande dans le répertoire de votre projet pour installer le package :

npm install @aws-sdk/client-dynamodb

Après l'installation aws-sdk/client-dynamodb dans votre projet Node.js, vous devez ajouter la région de votre table DynamoDB à la configuration avant d'interagir avec elle. Vous ferez cela lors de l'initialisation du client DynamoDB.

Si vous avez déjà installé et utilisé AWS-CLI sur votre ordinateur, vous avez probablement déjà défini les informations d'identification AWS dans votre environnement et le SDK obtiendra automatiquement vos valeurs de l'environnement.

Mais si ce n’est pas le cas, vous pouvez vous rendre au Gestion de l'accès aux identités AWS (IAM) service dans votre console et créez un nouvel utilisateur. Après avoir créé l'utilisateur, vous pouvez obtenir un identifiant de clé d'accès et une clé secrète, qui sont vos informations d'identification personnelles.

Ajoutez ces informations d'identification à votre environnement en exécutant les commandes de terminal suivantes pour votre plateforme :

Sous Unix, Linux ou macOS :

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

Sous Windows (CMD) :

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

Sous Windows (PowerShell) :

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

Ensuite, de retour dans votre projet Node.js, créez un nouveau fichier et nommez-le dynamodb.js. Dans ce fichier, instanciez un nouveau client AWS DynamoDB à l'aide du code suivant :

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

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

const client = new DynamoDB({ region })

Assez simple! AWS s'assure que vous n'exposez aucune de vos informations d'identification de sécurité dans votre code. Ainsi, pendant que le code ci-dessus essaie de créer le client, il lit d'abord la clé d'accès et la clé secrète de votre environnement.

Le nouvellement créé client vous permet d'effectuer diverses opérations, comme créer des tableaux et lire et écrire des données.

DynamoDB est sans schéma, tout comme les autres bases de données NoSQL, vous pouvez donc toujours ajouter de nouveaux attributs (champs) à une table à tout moment. C'est pourquoi il vous suffit d'ajouter des attributs qui serviront de clés primaires à une table DynamoDB lors de sa création.

Découvrez le code suivant qui crée une nouvelle table (Client) dans 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();

Le Définitions d'attributs C'est dans ce champ que vous définissez les attributs clés de la table et leurs types. Le E-mail l'attribut ici a le type S ce qui signifie que le terrain attend un Chaîne comme sa valeur. Les trois types d'attributs disponibles sont S, N, et B (Chaîne, Nombre et Binaire).

Vous avez besoin du Schéma de clé pour définir des clés primaires qui aident à trouver et à organiser rapidement les éléments. DynamoDB s'attend à ce que les attributs que vous ajoutez lors de la création de la table soient des attributs clés, donc Email est la clé primaire ici. Vous devez l'ajouter au KeySchema et spécifier son Type de clé (HACHER).

L'autre valeur KeyType disponible est GAMME qui est utilisé pour les clés de tri. Les clés de tri sont utiles dans les cas où vous pourriez avoir des données avec les mêmes clés HASH dans une table et que vous souhaitez pour les regrouper en fonction de certaines données supplémentaires telles que la date ou la couleur, vous pouvez définir les données supplémentaires comme une GAMME clé.

Le troisième paramètre important dans le code ci-dessus est le Débit provisionné. C'est ici que vous définissez le nombre de lectures et d'écritures que vous souhaitez que DynamoDb autorise sur la table par seconde.

Lorsque vous exécutez le code ci-dessus, vous devriez obtenir un résultat qui ressemble à ceci :

Si vous consultez le tableau de bord de vos tables DynamoDB dans la console Web, vous verrez la table soit toujours en cours de provisionnement, soit avec un statut de actif déjà.

Tenez toujours compte des besoins de votre application lorsque vous spécifiez le Unités de capacité de lecture et Unités de capacité d'écriture car une valeur inappropriée peut entraîner des problèmes de performances ou des coûts de facturation élevés sur votre compte.

Une fois que vous êtes sûr que la table est déjà active, vous pouvez y effectuer des opérations CRUD.

Voici quelques exemples de code qui vous montrent comment écrire et lire des données à partir du Client tableau.

  1. Ajouter des données au tableau. Pour écrire des données dans une table, vous avez besoin du client putItem méthode. Le code ci-dessous ajoute un nouveau client au Client table dans 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)

    Le paramètres l'objet contient le Nom de la table quelle est la table sur laquelle vous écrivez, et le Article champ qui contient les données que vous ajoutez avec leurs types spécifiques. Notez les nouveaux champs qui n'étaient pas initialement dans le tableau, c'est ainsi que DynamoDB fonctionne de manière flexible. Vous pouvez afficher les données de votre base de données dans votre console comme ceci :
  2. Lire les données du tableau. DynamoDB vous permet de lire les données de différentes manières. Les SDK analyse la fonction lit toute la table, tandis que obtenir l'article lit uniquement des données spécifiques. Par exemple, le code ci-dessous récupère tous les clients :
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Alors que le code suivant obtient l'utilisateur par la valeur email :
    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. Mettre à jour les données dans le tableau. Pour mettre à jour les données existantes dans une table, utilisez le SDK updateItem fonction. Le code suivant montre comment mettre à jour un enregistrement spécifique :
     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)
     }

    Vous pouvez également choisir de rendre votre fonction dynamique en créant des expressions de mise à jour à partir de vos données de mise à jour. La flexibilité de DynamoDB vous permet de gérer chaque opération en fonction de vos besoins.
  4. Supprimer des données du tableau. Pour supprimer un enregistrement de DynamoDB, vous avez besoin du effacer l'article fonction et la clé de l'enregistrement particulier. Voici comment le mettre en œuvre :
    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]")

Créer des applications efficaces avec DynamoDB

Amazon Web Services continue de prospérer. Il fournit une plate-forme accessible que vous pouvez utiliser pour fournir des solutions numériques efficaces et sécurisées. DynamoDB est le choix idéal si vous recherchez une base de données à exécuter sans vous soucier de l'infrastructure ou de la sécurité.

Vous disposez désormais de tout ce dont vous avez besoin pour démarrer avec DynamoDB dans Node.js, et vous pouvez choisir en toute confiance DynamoDB pour votre prochaine application Node.js.