Перейти к основному содержимому

FastAPI в Serverless-функции

· 3 мин. чтения

У меня уже есть пост про то как запустить FastAPI в Serverless контейнере на Yandex Cloud, а также пост как в функции запустить популярные JS фреймворки. Пришло время взять понемногу из этих постов и запустить FastAPI в Serverless функции. Для этого нам понадобится python библиотека Mangum. Она не сказать что очень активно поддерживается. Это заметно и по истории коммитов и по тому что они упустили домен, где была документация и теперь там лежит рекламный блог. Недавно разработку подхватил другой разработчик. Восстановил документацию и это дает надежду на то что проект будет развиваться дальше.

Yandex Cloud Video. Часть 1

· 7 мин. чтения

Мне давно была интересна эта тема. Вот посты из 2021 года: Хранение видео в Yandex Cloud, Раздача видео из Yandex Cloud Object Storage и Ограничение доступа к HLS-видео при помощи шифрования AES-128. И хоть в них и описываются базовые принципы того как можно хранить и раздавать видео в облаке, но это лишь небольшая часть тех возможностей, которые предоставляет новый сервис.

схема сервиса

А теперь давайте посмотрим, что же там есть.

Ресурсы функции

· 9 мин. чтения

То, что функция в один момент времени обрабатывает один запрос, а после выполнения инстанс функции подчищает все ресурсы, позволяет не задумываться о корректном закрытии таких ресурсов. Например, можно спокойно не закрыть открытый на чтение временный файл. И в этом действительно не будет никаких проблем, до тех пор пока в сервис не придет нагрузка.

Паттерн Outbox

· 5 мин. чтения

Паттерн Outbox решает проблему двойной записи, которая возникает в распределенных системах, когда одна операция включает в себя как операцию записи в базу данных, так и отправку сообщения или уведомления.

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

Ошибка в одной из этих операций может привести к не консистентным данным.

Логирование в облачных функциях

· 5 мин. чтения

В принципе тут все просто и логирование в облачных функциях работает «из коробки». Т.е. все что вы залогируете во время выполнения функции будет доступно в Cloud Logging. Но есть некоторые нюансы, о которых я хочу рассказать.

Асинхронный вызов облачных функций в Яндекс Облаке

· 5 мин. чтения

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

Как организовать write-only доступ к Object Storage

· 4 мин. чтения

Write-only доступ к Yandex Cloud Object Storage может быть полезен в различных сценариях, когда вам нужно разрешить только запись данных в определенный бакет Object Storage, но не давать доступ к чтению данных из этого бакета.

Важен ли порядок полей в JWT

· 2 мин. чтения

Всем известна проблема, что JSON по умолчанию не гарантирует порядок полей. Но ведь в JWT порядок полей важен, ведь так? Нам же нужно подписать полученные строки, а они каждый раз могут быть разные. Давайте разберемся.

Cloud Logging: долгосрочное хранение и анализ

· 4 мин. чтения

Изначально, во время preview, Yandex Cloud Logging предоставлял возможность хранения логов в течение 3 дней. С выходом сервиса в general availability в ноябре 2023 срок хранения логов в Cloud Logging был увеличен до 31 дней по умолчанию. Но так как это квота, вы можете запросить увеличение срока хранения.

Однако вопрос как организовать долгосрочное хранение логов остается. Для этого нам понадобится создать Data Stream, лог группу, которая будет в него писать, а так же Data Transfer, которы сможет перекладывать данные в какое-то долгосрочное хранилище. В этом примере я буду использовать Yandex Cloud Object Storage (аналог AWS S3). Это самый дешевый из возможных вариантов, при этом обеспечивающий не только хранение, но и с выходом Yandex Query и возможность анализа хранимых логов.

Serverless Full Text Search на Go

· 10 мин. чтения

В прошлом Serverless Full Text Search я рассмотрел JavaScript библиотеку для in-memory полнотекстового поиска Lyra. Почему я выбрал именно ее? Во-первых, именно на доклад про неё я наткнулся на YouTube. Во-вторых, мне понравилась её универсальность и возможность притащить её в браузер.

Serverless Full Text Search

· 9 мин. чтения

Если вы для своего проекта выбрали serverless стек, то наверняка вы заметили, что в Яндекс Облаке для него нет решения обеспечивающего полнотекстовый поиск. Ну, то есть вы конечно можете поднять кластер ElasticSearch. Но при его минимальной стоимости и выделяемых ресурсах это наверняка будет стрельбой из пушки по воробьям.

Но что же делать, если хочется сохранить низкие расходы на инфраструктуру и получить быстрый полнотекстовый поиск?

Генерация приватных ключей Ed25519 на Go

· 8 мин. чтения

Небольшая предыстория. Мне понадобилось собрать Ubuntu 22.04 Jammy Jellyfish при помощи Packer используя ssh provisioner. А для дебага этого процесса захотелось научиться сохранять создаваемые пакером ключи на диск, чтобы с их помощь можно было зайти на ВМ.

Запуск Serverless Container по триггеру

· 3 мин. чтения

Итак, у вас есть цель выполнять какую-то задачу внутри serverless контейнера по расписанию. К сожалению, вы не сможете просто взять положить в контейнер ваш код и надеяться что все заработает просто так.