Как использовать AWS DynamoDB в приложении Node.js

Давайте вместе создадим этот пример приложения и посмотрим, насколько легко исследовать базу данных.

Разработка большинства современных приложений требует сочетания мощных языков программирования и баз данных.

Одним из решений, предлагаемых Amazon Web Services (AWS), является DynamoDB, инструмент, который революционизирует управление данными. Используя его, вы можете быстро подготовить базу данных для обработки больших объемов различных данных.

Как использовать AWS DynamoDB в приложении Node.js. Рисунок 1.

Что такое ДинамоБД?

AWS предоставляет сервисы для различных потребностей баз данных, такие как Amazon RDS для реляционных баз данных, DocumentDB для баз данных документов (например, MongoDB). DynamoDB — это база данных NoSQL для хранения данных в формате «ключ-значение».

DynamoDB может обрабатывать большие объемы данных в распределенной инфраструктуре без ущерба для производительности, долговечности и надежности. Он предоставляет гибкую модель, позволяющую легко хранить и запрашивать данные, как структурированные, так и неструктурированные.

Вы можете использовать DynamoDB в качестве базы данных для различных типов приложений, даже получая к ней прямой доступ из веб-консоли AWS и программируя через AWS-CLI или из веб-приложения с помощью AWS-SDK.

Инструкции по использованию DynamoDB в Node.js

В Node.js существует множество инструментов для создания серверных API, и вы можете свободно выбирать базу данных для API при работе с любым из них. Node.js обеспечивает обширную поддержку внешних сервисов, включая такие базы данных, как AWS DynamoDB.

Все, что вам нужно сделать для доступа к сервисам AWS из вашего приложения Node, — это клиентский пакет aws-sdk для этого сервиса. Например, для доступа к DynamoDB вам необходимо установить пакет client-dynamodb в aws-sdk.

Запустите эту команду в каталоге проекта, чтобы установить пакет:

npm установить @aws-sdk/client-dynamodb

После установки aws-sdk/client-dynamodb в ваш проект Node.js вам необходимо добавить область таблицы DynamoDB в конфигурацию, прежде чем взаимодействовать с ней. Вы сделаете это при инициализации клиента DynamoDB.

Если вы ранее установили и использовали AWS-CLI на своем компьютере, возможно, вы настроили учетные данные AWS в своей среде программирования, и SDK будет автоматически извлекать значения из этой среды.

Однако, если у вас его нет, вы можете перейти к сервису AWS Identity Access Management (IAM) в консоли и создать нового пользователя. После создания пользователя вы можете получить идентификатор ключа доступа и секретный ключ в качестве личной информации для аутентификации.

Добавьте эти учетные данные в среду, выполнив следующую команду терминала для вашей платформы:

В Unix, Linux или macOS:

Export AWS_ACCESS_KEY_ID=’идентификатор вашего ключа доступа’ Export AWS_SECRET_ACCESS_KEY=’ваш секретный ключ доступа’

В Windows (CMD):

set AWS_ACCESS_KEY_ID=’идентификатор вашего ключа доступа’ set AWS_SECRET_ACCESS_KEY=’ваш секретный ключ доступа’

В Windows (PowerShell):

$env:AWS_ACCESS_KEY_ID=’идентификатор вашего ключа доступа’ $env:AWS_SECRET_ACCESS_KEY=’ваш секретный ключ доступа’

Затем вернитесь в проект Node.js, создайте новый файл и назовите его dynamodb.js. В этом файле создайте клиент AWS DynamoDB со следующим кодом:

const { DynamoDB } = require(‘@aws-sdk/client-dynamodb’) const Region = “us-east-1” // Khu vực ưu tiên của bạn const client = new DynamoDB({region })

Довольно просто! AWS гарантирует, что вы не раскроете какую-либо информацию о безопасности в своем коде, поэтому, пока приведенный выше код пытается создать новый клиент, он сначала считывает ключ доступа и секретный ключ из вашей среды.

Недавно созданный клиент позволяет выполнять различные операции, такие как создание таблиц, чтение и запись данных.

DynamoDB — это база данных без схемы, как и другие базы данных NoSQL, поэтому вы всегда можете добавлять в таблицу новые атрибуты (поля) в любое время. Вот почему вам нужно только добавить атрибуты первичного ключа в таблицу DynamoDB при ее создании.

Попробуйте следующий код, чтобы создать новую таблицу ( Customer ) в 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();

В поле AttributeDefinitions вы определяете ключевые атрибуты таблицы и их типы. Свойство Email здесь имеет тип S. Это означает, что это поле принимает в качестве значения строку. Три доступных типа атрибутов: S, N и B (строка, число и двоичный).

KeySchema нужна для идентификации первичных ключей, помогая быстро находить и упорядочивать элементы. DynamoDB ожидает, что атрибуты, которые вы добавляете при создании таблицы, будут основным атрибутом, поэтому электронная почта здесь является первичным ключом. Вы должны добавить его в KeySchema и определить его KeyType (HASH).

Другое доступное значение KeyType — RANGE, которое используется для категориальных ключей. Ключи сортировки полезны в ситуациях, когда в таблице могут быть данные с одним и тем же ключом HASH. Если вы хотите сгруппировать их по каким-либо дополнительным данным, таким как дата или цвет, вы можете сделать дополнительные данные ключом RANGE.

Третий важный параметр в приведенном выше коде — ProvisionedThroughput. Здесь вы определяете количество операций чтения и записи, которые DynamoDB разрешает выполнять в таблице в секунду.

Запустив приведенный выше код, вы получите следующий результат:

Как использовать AWS DynamoDB в приложении Node.js. Рисунок 2.

Если вы проверите панели DyanmoDB в веб-консоли, вы увидите, что панель все еще подготовлена ​​или находится в активном состоянии.

Убедившись, что таблица активна, вы можете продолжить операции CRUD с ней.

Вот пример кода, показывающий, как записывать и читать данные из таблицы Customer.

1. Добавьте данные в таблицу. Чтобы записать данные в таблицу, вам понадобится клиентский метод putItem. Код ниже добавляет нового клиента в таблицу Customer в 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”: “Тимилехин О.” }, электронная почта: { “S”: “timtim@example.com” }, возраст: { “N”: “18”}, страна: { “S”: “Нигерия” } } createCustomer(customerData)

Объект params содержит TableName, который представляет собой таблицу, в которую вы записываете, а поле Item содержит данные, которые вы добавляете с определенными типами. Обратите внимание, что новых полей нет в исходной таблице, что показывает, насколько гибким является DynamoDB. Просмотреть данные в базе данных в консоли можно так:

Как использовать AWS DynamoDB в приложении Node.js. Рисунок 3.

2. Считайте данные из таблицы. DynamoDB позволяет читать данные разными способами. Функция сканирования SDK считывает всю таблицу, а getItem считывает только определенные данные. Например, в приведенном ниже коде указаны все клиенты:

const getAllCustomers = async () => { const params = { TableName: “Customer” } const customer = await client.scan(params) console.log(customers) }

А следующий код получает пользователей по значению адреса электронной почты:

const getCustomerByEmail = async (email) => { const params = { TableName: “Customer”, Key: { Email: { “S”: email } // тип всегда требуется } } const customer = await client.getItem(params ) console.log(клиент) } getCustomerByEmail(“timtim@example.com”)

3. Обновите данные в таблице. Чтобы обновить существующие данные в таблице, используйте функцию updateItem SDK. Следующий код показывает, как обновить конкретную запись:

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 updateCustomer = await client.updateItem(params) console.log(updatedCustomer.Attributes) }

Вы также можете динамически создавать функции, создавая выражения обновления данных на основе данных обновления. Гибкость DynamoDB позволяет выполнять любую операцию по мере необходимости.

4. Удалить данные из таблицы. Чтобы удалить записи из DynamoDB, вам понадобится функция deleteItem и ключ конкретной записи. Вот как это реализовать:

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(“Клиент успешно удален”) } }) } deleteCustomer(“timtim@example.com”)

Выше приведено все, что вам нужно знать о том, как использовать DynamoDB в Node.js, надеюсь, статья окажется для вас полезной.

В приведенной выше статье вы познакомились с «Как использовать AWS DynamoDB в приложении Node.js». СоветыНадейтесь, что эта статья вам поможет! Если эта статья кажется вам интересной и полезной, не забудьте поделиться ею. Спасибо!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *