Как создать и подключить Redis к бессерверному приложению Node.js в Azure
13 июня 2023 г.Всем привет! Сегодня мы погрузимся в увлекательный мир разработки программного обеспечения, в частности, рассмотрим бессерверное приложение Node.js, Microsoft Azure и Redis. Эти инструменты могут показаться пугающими, особенно если вы новичок в разработке программного обеспечения, но уверяю вас, с некоторыми рекомендациями, ими вполне можно управлять. Итак, давайте пристегнемся и приготовимся учиться.
Обзор содержания
- Введение в Redis, Node.js и Azure
- Настройка Node.js с помощью Azure
- Установка Redis
- Подключение Node.js к Redis
- Проверка настроек
Введение в 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).
Не забудьте открыть URL-адрес в браузере, он включит наше веб-приложение после развертывания.
В потоке журналов вы увидите:
Redis Client Error Error: connect ECONNREFUSED ::1:6379
Теперь мы готовы создать приложение Redis в Azure и подключить его.
Подключение Node.js к Redis
Найдите Редис. В службах вы увидите «Кэш Azure для Redis» (рис. 2).
Нажмите «Создать кеш Redis». Вам следует выбрать группу ресурсов, которая использует ваше веб-приложение (рис. 4).
Создайте ресурс и подождите некоторое время. Обычно на это уходит несколько минут. Затем перейдите на страницу «Обзор» ресурса и скопируйте «Имя хоста»
и вставьте в код»:
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).
Кроме того, перейдите в Дополнительные настройки, которые находятся ниже «Ключи доступа» и установите «Нет», чтобы разрешить доступ только через SSL «. Это позволит кэшу Redis работать через порт 6379.
Проверка настройки
Наконец, проверьте свои настройки локально, запустив Nodejs с помощью команды yarn start
. Ваша функция должна иметь доступ к вашему экземпляру Azure Redis. Для развертывания отправьте проект в Azure, и он должен подключиться к кэшу Azure Redis.
Вот и все! Вы успешно создали экземпляр Redis и подключили его к бессерверному приложению Node.js в Azure. Помните: не делайте БД, Redis и другие ресурсы общедоступными и не забывайте использовать SSL. Попробуйте создать закрытую виртуальную сеть и использовать ее. Закройте все, если это возможно, внутри вашей частной сети.
Это руководство предназначено только для тестирования и обучения. Практика имеет ключевое значение, когда дело доходит до разработки программного обеспечения. Не стесняйтесь экспериментировать с различными настройками и функциями Redis, Node.js и Azure. Чем больше вы экспериментируете, тем лучше понимаете.
Удачного кодирования!
Оригинал