Serverless GraphQL Part II: ходим за данными в Yandex Database
В первой части мы закончили на том, что запустили Apollo в облаке. Но это слишком простое API. Поэтому сейчас добавим интеграцию с Severless YDB.
В первой части мы закончили на том, что запустили Apollo в облаке. Но это слишком простое API. Поэтому сейчас добавим интеграцию с Severless YDB.
Yandex Cloud Serverless Functions позволяют развертывать приложения в облаке не тратя время на администрирование серверов. Вы платите только за те ресурсы, которые ваше API потребляет обрабатывая запросы пользователей. Этот пост расскажет как развернуть Apollo Server 2 в Yandex Cloud Functions.
В предыдущих постах я рисовал пояснительные диаграммы в draw.io. Это крутой инструмент, но проблема в том, что если я заметил опечатку в картинке, то чтобы поправить ее мне нужно найти, где я сохранил эту диаграмму, поправить руками и перерендерить файл с диаграммой. Мне стало интересно можно ли делать по-другому.
И я нашел инструмент для декларативного описания диаграмм и их рендеринга. Была маленькая проблема, что там не было иконок для Yandex.Cloud. Но я это поправил.
UPD: Yandex Cloud представили новый runtime для функций — C#. Ну и мне тут же захотелось его попробовать. Поэтому я дописал реализацию этой функции еще и на csharp. https://github.com/nikolaymatrosov/yc-on-the-fly-thumbnailer-csharp/blob/master/OnTheFlyResize/Handler.cs
Как для сайта на Gatsby автоматизировать его выкладку в Объектное хранилище Яндекс Облака при помощи Github Actions.
UPD: Написал как делать thumbnail’ы на лету.
С появлением триггеров в Яндекс Облаке появилась возможность задавать действия описываемые serverless function на события в очереди или в объектном хранилище.
Upd: я дополнил пост расширенным примером применимом в облаке с большим количеством дисков. Также там добавлено удаление старых снепшотов.
Upd2: https://github.com/nikolaymatrosov/go-yc-serverless-snapshotЯ переписал пример на Go, так как в Облаке недавно появился рантайм для Go 1.14.
Upd3: Пример на Go обновлен для версии ратайма 1.16.
Upd 2022–01–08: Пример на для NodeJS переписан с использованием новой версии SDK v2. Код из поста ниже устарел.
Так как пока в Облаке отсутствует нативная возможность настроить создание снэпшотов по расписанию можно сделать эту функциональность из подручных средств.
Я поискал и не нашел гайда как из приложения на C# подключиться к managed базе данных PostgreSQL в Яндекс Облаке, поэтому решил сам написать небольшую иллюстрированную инструкцию.