Как создать и подключить Redis к бессерверному приложению Node.js в Azure

Как создать и подключить Redis к бессерверному приложению Node.js в Azure

13 июня 2023 г.

Всем привет! Сегодня мы погрузимся в увлекательный мир разработки программного обеспечения, в частности, рассмотрим бессерверное приложение Node.js, Microsoft Azure и Redis. Эти инструменты могут показаться пугающими, особенно если вы новичок в разработке программного обеспечения, но уверяю вас, с некоторыми рекомендациями, ими вполне можно управлять. Итак, давайте пристегнемся и приготовимся учиться.

Обзор содержания

  1. Введение в Redis, Node.js и Azure
  2. Настройка Node.js с помощью Azure
  3. Установка Redis
  4. Подключение Node.js к Redis
  5. Проверка настроек

Введение в Redis, Node.js и Azure

  • Redis – это хранилище структур данных в памяти с открытым исходным кодом, используемое в качестве базы данных, кэша и брокера сообщений. Это хранилище ключей и значений NoSQL, которое отлично подходит для обработки данных с высокой скоростью или объемом.

* Node.js — это среда выполнения для выполнения кода JavaScript на стороне сервера. Он используется для создания масштабируемых и эффективных сетевых приложений.

* Azure — это платформа и служба облачных вычислений Microsoft, где мы будем развертывать наше приложение Node.js. В частности, мы будем использовать Azure Web App, службу бессерверных вычислений, которая позволяет запускать код без выделения серверов или управления ими.

Настройка Node.js с помощью Azure

Как настроить все необходимые ресурсы, я кратко объяснил в своей предыдущей статье Как развернуть бессерверное приложение Node.js в Azure.

Установка Redis

Нам нужно установить пакет Redis в проекте Node.js:

npm install redis

Затем нам нужно добавить код в файл app.js:

import redis from 'redis';
import { createServer } from 'http';


// Create an redis conn.
const client = redis.createClient();
client.on('error', err => console.log('Redis Client Error', err));
await client.connect();

// For test.
await client.set('testKey', 'Hackernoon!');
const value = await client.get('testKey');

const server = createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end(`Hello, ${value}n`);
});

server.listen(8080, '0.0.0.0', () => {
    console.log('Server running at http://0.0.0.0:8080/');
});

В package.json нам нужно добавить type: module:

{
  "name": "hackernoon",
  "version": "1.0.0",
  "type": "module",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "redis": "^4.6.7"
  }
}

Разверните его в облаке и нажмите «Начать потоковую передачу журналов» (рис. 1).

Img 1. Get some logs from Azure Web App.

Не забудьте открыть URL-адрес в браузере, он включит наше веб-приложение после развертывания.

В потоке журналов вы увидите:

Redis Client Error Error: connect ECONNREFUSED ::1:6379

Теперь мы готовы создать приложение Redis в Azure и подключить его.

Подключение Node.js к Redis

Найдите Редис. В службах вы увидите «Кэш Azure для Redis» (рис. 2).

Img2. Azure Cache for Redis.

Нажмите «Создать кеш Redis». Вам следует выбрать группу ресурсов, которая использует ваше веб-приложение (рис. 4).

Img 3. Create Redis cache.

Img 4. Settings.

Создайте ресурс и подождите некоторое время. Обычно на это уходит несколько минут. Затем перейдите на страницу «Обзор» ресурса и скопируйте «Имя хоста» и вставьте в код»:

import redis from "redis";
import { createServer } from "http";

// Create an redis conn.
const client = redis.createClient({
  url: "redis://hackernoon.redis.cache.windows.net",
  password: "<Your PRIMARY password from Azure Redis Resource>",
});
client.on("error", (err) => console.log("Redis Client Error", err));
await client.connect();

// For test.
await client.set("testKey", "Hackernoon!");
const value = await client.get("testKey");

const server = createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader("Content-Type", "text/plain");
  res.end(`Hello, ${value}n`);
});

server.listen(8080, "0.0.0.0", () => {
  console.log("Server running at http://0.0.0.0:8080/");
});

Значение пароля вы можете найти в «Ключах доступа» (Рис. 5).

Img 5. Access keys.

Кроме того, перейдите в Дополнительные настройки, которые находятся ниже «Ключи доступа» и установите «Нет», чтобы разрешить доступ только через SSL «. Это позволит кэшу Redis работать через порт 6379.

Проверка настройки

Наконец, проверьте свои настройки локально, запустив Nodejs с помощью команды yarn start. Ваша функция должна иметь доступ к вашему экземпляру Azure Redis. Для развертывания отправьте проект в Azure, и он должен подключиться к кэшу Azure Redis.

Вот и все! Вы успешно создали экземпляр Redis и подключили его к бессерверному приложению Node.js в Azure. Помните: не делайте БД, Redis и другие ресурсы общедоступными и не забывайте использовать SSL. Попробуйте создать закрытую виртуальную сеть и использовать ее. Закройте все, если это возможно, внутри вашей частной сети.

Это руководство предназначено только для тестирования и обучения. Практика имеет ключевое значение, когда дело доходит до разработки программного обеспечения. Не стесняйтесь экспериментировать с различными настройками и функциями Redis, Node.js и Azure. Чем больше вы экспериментируете, тем лучше понимаете.

Удачного кодирования!


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE