Как развернуть свое первое приложение в FastAPI Cloud
Узнайте, как создавать, тестировать, развертывать и отслеживать свое первое приложение FastAPI Cloud — простую панель мониторинга в режиме реального времени, включающую статусы Gold и Silver.

# Введение
FastAPI значительно развился из простой библиотеки Python для обслуживания API. Он превратился в более широкую экосистему, на которую полагаются многие разработчики при создании современных веб-приложений, особенно для проектов в области искусственного интеллекта и машинного обучения. Одна из причин популярности FastAPI — его скорость, простота и удобный для разработчиков дизайн.

Изображение из FastAPI Cloud
Теперь, с FastAPI Cloud , процесс развертывания также значительно упрощается. Вместо того чтобы тратить время на настройку серверов и конвейеров развертывания, вы можете развернуть приложение за считанные секунды, используя интерфейс командной строки (CLI) FastAPI Cloud. Настройка кажется простой, легкой и гораздо ближе к тому удобству, которого разработчики ожидают от современных управляемых платформ.
На момент написания этой статьи доступ всё ещё предоставляется через список ожидания. Я подал заявку пару месяцев назад и недавно получил доступ, поэтому решил составить простое руководство, основанное на моём опыте. В этом руководстве я расскажу о базовом процессе настройки и покажу, как развернуть небольшое приложение FastAPI всего за несколько шагов.
# Создание проекта
В этом уроке вы создадите простую панель мониторинга цен на металлы в режиме реального времени с использованием FastAPI. Приложение будет получать цены на золото и серебро из API, возвращать данные в формате JSON и отображать значения в браузере с помощью небольшого HTML-интерфейса.
Прежде чем начать, убедитесь, что у вас есть:
- Для создания структуры проекта необходимо установить UV- развертку или последнюю поддерживаемую версию Python.
- Учетная запись FastAPI Cloud.
Для начала создайте новый проект FastAPI с помощью официальной команды настройки:
uvx fastapi-new metals-live cd metals-live
FastAPI сгенерирует структуру проекта и установит необходимые зависимости за вас в течение нескольких секунд.

Изображение предоставлено автором.
Далее активируйте виртуальное окружение в каталоге проекта.
В Linux/macOS:
источник .venv/bin/activate
В Windows PowerShell:
.venvScriptsActivate.ps1
# Добавление httpx
Далее установите необходимые для приложения пакеты. Мы будем использовать httpx для получения актуальных цен на золото и серебро из API, а также убедимся, что установлены стандартные дополнительные компоненты FastAPI, чтобы приложение работало и развертывалось без проблем и без отсутствующих зависимостей.
uv add httpx «fastapi[standard]»
Эта команда добавляет httpx для выполнения исходящих API-запросов и устанавливает стандартные зависимости FastAPI, обычно необходимые для разработки и развертывания.
# Замена приложения по умолчанию
Теперь пришло время заменить стандартное приложение FastAPI на ту версию, которую вы действительно будете развертывать.
Вот как выглядит структура проекта по умолчанию:

Изображение предоставлено автором.
Откройте файл main.py и замените его содержимое пользовательским кодом, показанным ниже. Эта версия делает две вещи: она получает актуальные цены на золото и серебро из Gold API и предоставляет простую панель управления для браузера, которая автоматически обновляется каждые 15 секунд.
Вставьте это в файл main.py:
import httpx from fastapi import FastAPI, HTTPException from fastapi.responses import HTMLResponse app = FastAPI(title=»Live Gold & Silver Prices») GOLD_API_BASE = «https://api.gold-api.com» async def fetch_price(symbol: str): url = f»{GOLD_API_BASE}/price/{symbol}» async with httpx.AsyncClient(timeout=10.0) as client: response = await client.get(url) if response.status_code != 200: raise HTTPException(status_code=502, detail=f»Failed to fetch {symbol} price») data = response.json() return { «symbol»: data.get(«symbol», symbol), «name»: data.get(«name», symbol), «price»: data.get(«price»), «currency»: data.get(«currency», «USD»), «updatedAt»: data.get(«updatedAt») or data.get(«timestamp»), } @app.get(«/api/prices») async def get_prices(): gold = await fetch_price(«XAU») silver = await fetch_price(«XAG») return { «gold»: gold, «silver»: silver, } @app.get(«/», response_class=HTMLResponse) async def home(): return «»»
Цены на золото и серебро в реальном времени
Цены автоматически обновляются каждые 15 секунд.
«»»
Что делает этот код:
- Создает приложение FastAPI.
- Получает актуальные цены на золото и серебро из API.
- Возвращает данные через /api/prices.
- Предоставляет простую HTML-панель управления по адресу /.
- Цены на сайте обновляются каждые 15 секунд.
# Локальное тестирование
Перед развертыванием рекомендуется запустить приложение локально и убедиться, что все работает должным образом. FastAPI упрощает эту задачу благодаря встроенному серверу разработки.
Запустите приложение с помощью:
fastapi dev main.py
После запуска сервера FastAPI сгенерирует локальный URL-адрес для вашего приложения и URL-адрес документации для тестирования конечных точек.

Изображение предоставлено автором.
Откройте браузер и перейдите по адресу:
http://127.0.0.1:8000
На панели мониторинга в режиме реального времени должны отображаться цены на золото и серебро. Значения будут автоматически обновляться каждые 15 секунд.

Изображение предоставлено автором.
Вы также можете протестировать конечную точку JSON напрямую по адресу:
http://127.0.0.1:8000/api/prices
Это особенно полезно, если вы хотите проанализировать необработанный ответ или впоследствии подключить данные к другому интерфейсу или приложению.

Изображение предоставлено автором.
# Развертывание в FastAPI Cloud
После того как приложение заработает локально, вы готовы развернуть его в FastAPI Cloud. Процесс развертывания очень прост и начинается с одной команды.
Бегать:
fastapi deploy
Интерфейс командной строки поможет вам подключить вашу учетную запись FastAPI Cloud и завершить настройку. В процессе регистрации вам могут задать несколько коротких вопросов, например, о названии вашей команды, названии приложения и параметрах развертывания.

Изображение предоставлено автором.
После этого FastAPI Cloud создаст и развернет ваше приложение.

Изображение предоставлено автором.
После завершения развертывания вы получите действующий публичный URL-адрес вашего приложения — например:

Изображение предоставлено автором.
https://metals-live.fastapicloud.dev/
FastAPI Cloud также предоставляет интерактивную документацию по API по адресу:
https://metals-live.fastapicloud.dev/docs

Изображение предоставлено автором.
Это удобно, потому что вы можете тестировать свой API прямо из браузера, без необходимости использования каких-либо дополнительных инструментов.

Изображение предоставлено автором.
# Мониторинг приложения
После развертывания вы можете использовать панель управления FastAPI Cloud для мониторинга вашего приложения и проверки его журналов.
Чтобы просмотреть журналы:
- Откройте панель управления FastAPI Cloud.
- Перейдите в раздел «Приложения» .
- Выберите приложение.
- Открытые журналы .
Это полезно для проверки корректности работы вашего приложения, выявления ошибок API и отладки проблем после развертывания.

Изображение предоставлено автором.
FastAPI Cloud также начинает напоминать такие платформы, как Supabase или Vercel , предлагая управляемый хостинг, быструю развертку через командную строку и дополнительные интеграции, которые можно подключать к вашему приложению по мере его развития.

Изображение предоставлено автором.
# Завершение
FastAPI Cloud упрощает перенос небольшого приложения FastAPI из локальной среды разработки в рабочую среду. В этом руководстве мы создали простую панель мониторинга Metals в режиме реального времени, протестировали её локально, развернули одной командой и проверили журналы после запуска.
Для первого развертывания рабочий процесс прост и является хорошим введением в возможности FastAPI Cloud.
Абид Али Аван (@1abidaliawan) — сертифицированный специалист по анализу данных, увлеченный созданием моделей машинного обучения. В настоящее время он занимается созданием контента и написанием технических блогов о технологиях машинного обучения и анализа данных. Абид имеет степень магистра в области управления технологиями и степень бакалавра в области телекоммуникационной инженерии. Его цель — создать продукт на основе искусственного интеллекта с использованием графовой нейронной сети для студентов, страдающих психическими заболеваниями.
Источник: www.kdnuggets.com

Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.