Облако · Урок 49

Облачные сервисы

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

Основные блоки

Загрузка файла в S3

import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({ region: process.env.AWS_REGION });
await s3.send(new PutObjectCommand({
  Bucket: process.env.BUCKET,
  Key: "uploads/" + name,
  Body: buffer
}));
// URL: https://bucket.s3.region.amazonaws.com/uploads/name
💡
Секреты (Access Key, строки подключения) — в переменных окружения провайдера, а в коде — точка входа в process.env. В git-репо секретов не бывает — в этом весь принцип.

Serverless-функция

// handler, который вызывает провайдер по событию (HTTP, очередь, файл)
export async function handler(event) {
  const user = JSON.parse(event.body);
  await saveUser(user);   // например, в управляемую БД
  return { statusCode: 201, body: JSON.stringify({ ok: true }) };
}
ℹ️
Один и тот же код работает у всех трёх крупных провайдеров с минимальной правкой. Освоив паттерн «событие → функция → хранилище», вы не привязаны к одному облаку.