Статьи

Создание безсерверного REST API с помощью функции Compute и MongoDB

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

Из этого туториала Вы узнаете, как развернуть базу данных MongoDB в Alibaba Cloud и использовать Function Compute для разработки внутренней API-системы для взаимодействия с базой данных.

Обзор NoSQL и MongoDB

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

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

  • Key-Value
  • Документ
  • Семейство колонн
  • график

MongoDB — самая популярная система в группе баз данных документов. Как определено на mongodb.com ,

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

Alibaba Cloud ApsaraDB для MongoDB

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

  • Подписка (набор реплик)
  • PAYG (Pay-As-You-Go) (набор реплик)
  • PAYG (Sharding)

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

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

Создать экземпляр

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

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

Более подробная информация о параметрах экземпляра находится здесь .

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

Установить белые списки IP

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

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

После того, как вы установите белый список IP-адресов, нажмите « Подключение к базе данных », чтобы увидеть параметры подключения

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

Функция Compute

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

Функция Compute запускает ваш код в ответ на события. Когда служба источника события инициирует событие, автоматически вызывается связанная функция для обработки события.

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

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

Для шаблона функции выберите «Пустая функция»

На шаге «Настройка триггеров» выберите «Триггер HTTP» и присвойте ему имя. Другие настройки как на картинке ниже

На шаге «Настройка параметров функции» задайте имя для своей функции и выберите «nodejs6» в качестве среды выполнения.

Нажмите «Далее» в двух последних шагах, чтобы завершить работу мастера и создать функцию.

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

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

Используйте строку подключения с вашего сервера MongoDB.

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

Резюме

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