Создание безсерверного API REST с вычислением функций и MongoDB

Создание безсерверного API REST с вычислением функций и MongoDB

От автора: в этом руководстве рассказывается про REST API создание, взаимодействие с базой данных MongoDB в Alibaba Cloud и использование Вычисления функций.

Обзор NoSQL и MongoDB

Реляционные базы данных выбирались в качестве основной системы для управления данными в разработке программного обеспечения в течение длительного времени. Их принципы ACID способствуют сохранности данных, целостности транзакций и контролю параллелизма. За последние несколько лет стал популярным NoSQL (Not only SQL). Эта модель решает проблемы несоответствия между реляционными структурами данных (таблицы, строки, поля) и структурами данных в памяти приложения (объекты). Самое главное, что NoSQL предназначен для масштабирования по горизонтали, что делает его отличным выбором для современных веб-приложений.

NoSQL можно разделить на 4 группы:

Ключ-Значение

Документ

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Семейство колонок

Графы

MongoDB — самая популярная система в группе базы данных документов. Как говорится на mongodb.com: «Запись в MongoDB — это документ, который представляет собой структуру данных, состоящую из пар полей и значений. Документы MongoDB похожи на объекты JSON. Значения полей могут включать в себя другие документы, массивы и массивы документов«.

Alibaba Cloud ApsaraDB для MongoDB

Базы MongoDB могут быть развернуты на Alibaba Cloud через его ApsaraDB для службы MongoDB. Пользователи могут выбрать одну из трех схем ценообразования:

Подписка (набор реплик)

PAYG (Pay-As-You-Go) (набор реплик)

PAYG (Sharding)

Репликация и Sharding относятся к моделям распределения данных:

Репликация копирует данные на нескольких серверах. Один и тот же фрагмент данных хранится в разных местах. ApsaraDB для MongoDB использует набор реплик с 3 серверами. Репликация может помочь с горизонтальным масштабированием чтения.

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

Создание экземпляра

В консоли Cloud Alibaba нажмите «Products», и вы увидите ApsaraDB для MongoDB в группе ApsaraDB. Кроме того, вы можете использовать окно поиска, чтобы отфильтровать требуемую службу.

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

Примечание. Если вы используете бесплатную ознакомительную учетную запись, не забудьте выбрать экземпляр подписки. Экземпляры PAYG не включаются в ознакомительную программу.

Установите белые списки IP-адресов

Чтобы обеспечить безопасность базы данных, Alibaba Cloud автоматически блокирует весь доступ к базе данных. Вы должны указать IP-адреса в белом списке, чтобы получить доступ к целевому экземпляру.

Строка подключения

После того, как вы установили белый список, нажмите “Database Connection”, чтобы увидеть параметры подключения.

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Используйте эту строку подключения для подключения к базе данных в коде Node.js.

Вычисление функций

Вычисление функций позволяет запускать код без обеспечения или управления серверами. Этот сервис подготавливает вычислительные ресурсы и надежно выполняет ваши коды от вашего имени. Вы платите только за ресурсы, фактически потребляются при запуске кодов. Если ваш код не выполнен, вы не платите.

Вычисление функций запускает ваш код в ответ на события. Когда сервис источника события запускает событие, соответствующая функция автоматически вызывается для обработки события.

В консоли Cloud Alibaba выберите «Function Compute» и нажмите значок «+», чтобы создать новую службу:

Во вновь созданной службе кликните значок «+», чтобы создать новую функцию. С помощью мастера настройки установите параметры для своей функции. Для шаблона функции выберите «Empty Function».

На этапе “Configure Triggers” выберите «HTTP Trigger» и задайте ему имя. Другие настройки приведены ниже.

На этапе “Configure Function Settings” задайте имя для своей функции и выберите «nodejs6» в качестве времени выполнения.

Нажмите “Next” в последних двух этапах, чтобы завершить настройку и создать функцию.

Запрограммируйте функцию

Нажмите на функцию, которую вы только что создали, и перейдите на вкладку “Code”. Здесь вы указываете свой код для запуска функции.

Используйте строку подключения с вашего сервера MongoDB. Также здесь вы можете просмотреть триггер HTTP, который будет вызывать вашу функцию. Вы также можете запустить триггер, чтобы проверить функцию.

Заключение

В этом руководстве мы рассмотрели пример использования базы данных NoSQL с MongoDB. Alibaba Cloud предоставляет ApsaraDB для службы MongoDB тем, кто хочет запускать серверы MongoDB в своем облаке. Затем я рассказал вам о службе Вычисление функции — новом способе создания приложения с использованием безсерверной архитектуры. и привел пример функции Node.js, вызванной HTTP-запросом для подключения к базе данных MongoDB и выполнения команды “insert”.

Автор: Nhi Nam Ha

Источник: https://www.sitepoint.com/

Редакция: Команда webformyself.

Бесплатный курс «Full-Stack практика»

Изучите курс и создайте веб-приложение с нуля на JavaScript, NodeJS, ExpressJS

Получить курс

Full-Stack практика. Создание JavaScript блога

Создание веб-приложения с нуля на JavaScript, NodeJS, ExpressJS

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree