Код ответа 499 в Serverless-функциях
В логах Serverless-функций вы можете увидеть код ответа 499. Что это значит и что делать, если вы видите его в логах?
В логах Serverless-функций вы можете увидеть код ответа 499. Что это значит и что делать, если вы видите его в логах?
У меня уже есть пост про то как запустить FastAPI в Serverless контейнере на Yandex Cloud, а также пост как в функции запустить популярные JS фреймворки. Пришло время взять понемногу из этих постов и запустить FastAPI в Serverless функции. Для этого нам понадобится python библиотека Mangum. Она не сказать что очень активно поддерживается. Это заметно и по истории коммитов и по тому что они упустили домен, где была документация и теперь там лежит рекламный блог. Недавно разработку подхватил другой разработчик. Восстановил документацию и это дает надежду на то что проект будет развиваться дальше.
Мне давно была интересна эта тема. Вот посты из 2021 года: Хранение видео в Yandex Cloud, Раздача видео из Yandex Cloud Object Storage и Ограничение доступа к HLS-видео при помощи шифрования AES-128. И хоть в них и описываются базовые принципы того как можно хранить и раздавать видео в облаке, но это лишь небольшая часть тех возможностей, которые предоставляет новый сервис.

А теперь давайте посмотрим, что же там есть.
То, что функция в один момент времени обрабатывает один запрос, а после выполнения инстанс функции подчищает все ресурсы, позволяет не задумываться о корректном закрытии таких ресурсов. Например, можно спокойно не закрыть открытый на чтение временный файл. И в этом действительно не будет никаких проблем, до тех пор пока в сервис не придет нагрузка.
Паттерн Outbox решает проблему двойной записи, которая возникает в распределенных системах, когда одна операция включает в себя как операцию записи в базу данных, так и отправку сообщения или уведомления.
Двойная запись происходит, когда приложение пишет в две разные системы, например, когда микросервису нужно сохранить данные в базе данных и отправить сообщение для уведомления других систем.
Ошибка в одной из этих операций может привести к не консистентным данным.
Как развернуть Django приложение в Яндекс Облаке на Kubernetes и Managed Database.
В принципе тут все просто и логирование в облачных функциях работает «из коробки». Т.е. все что вы залогируете во время выполнения функции будет доступно в Cloud Logging. Но есть некоторые нюансы, о которых я хочу рассказать.
В прошлом посте на эту тему я рассказал о том, как можно использовать очереди сообщений для асинхронного вызова облачных функций в Яндекс Облаке. В этом посте я расскажу о том, как можно сделать это еще проще и удобнее.
Write-only доступ к Yandex Cloud Object Storage может быть полезен в различных сценариях, когда вам нужно разрешить только запись данных в определенный бакет Object Storage, но не давать доступ к чтению данных из этого бакета.
В принципе весь процесс описан в документации, но там упомянут всего один фреймворк - Sanic, а тут мы разберем как запустить Fastapi.
Динамически сжимать файлы при раздаче из Object Storage не получится, но это сделать заранее.
Итак, у вас есть цель выполнять какую-то задачу внутри serverless контейнера по расписанию. К сожалению, вы не сможете просто взять положить в контейнер ваш код и надеяться что все заработает просто так.
Сегодня я хотел бы разобрать модель работы облачных функций в Яндекс Облаке.
И так вы решили создать managed кластер Redis с поддержкой SSL в Yandex Cloud, но старые примеры кода не работают?
Как и обычно туториал я начну с небольшого кода приложения, которое мы будем использовать для наглядности. Код ни разу не production ready, а скорее минимально необходимый для демонстрации.
Cloud Logging отличный сервис для просмотра логов. Но у него есть одно ограничение — время хранения. Сейчас, пока сервис в стадии превью это 3 дня, позже с выходом в General Availability это время вероятно увеличат, но все равно оно вряд ли будет бесконечным, и уж тем более это не будет бесплатно.
А теперь вопрос: что делать если вам хочется (ну чтобы через год сравнить) или необходимо (по каким-нибудь юридическим или регуляторным причинам) хранить логи достаточно продолжительное время, от года и более. А еще делать это максимально просто и дешево.
Решение есть! А самое прекрасное, что нам почти не понадобится нечего дополнительно настраивать, если вы уже настроили поставку логов через Fluentbit, как я рассказывал в двух предыдущих постах про поставку логов из контейнера.
Для этого нам понадобится serverless функция.
Давайте сначала разберемся на сколько все плохо.
Итак, вам понадобилось развернуть удаленный рабочий стол на Ubuntu. Вот как это сделать.
Его нет. И вообще это плохая идея и вот почему.