Управляемые аддоныОбзор

Управляемые дополнения

Lizard (lizard.build) запускает базы данных и хранилище внутри проекта как управляемые дополнения: Managed Postgres, Managed Redis и S3-совместимое Managed Object Storage. lizard add postgres redis s3 создаёт все три одной командой. Каждое дополнение предоставляет фиксированный набор переменных окружения, например DATABASE_URL, а ваши сервисы читают их через ссылки вида ${{postgres.DATABASE_URL}}. Используйте дополнения, когда приложению нужны данные, которые сохранятся после развёртывания или перезапуска.

Создание дополнения

lizard add postgres            # one addon
lizard add postgres redis s3   # several at once
lizard add --list              # show available types

Имена

Первое дополнение каждого типа получает в качестве имени само название типа, поэтому ${{postgres.DATABASE_URL}} работает сразу после создания. Остальные дополнения того же типа получают сгенерированное имя, например postgres-autumn-bear. Удалённое дополнение сохраняет своё имя в корзине в течение 3 дней, поэтому новое дополнение, добавленное в этот период, получит сгенерированное имя; восстановите старое дополнение или направьте ссылки на новое имя.

Псевдонимы типов не поддерживаются: ссылка должна содержать текущее имя дополнения. Переименование дополнения нарушает ссылки на старое имя, поэтому после переименования обновите их:

lizard service rename main-db --service postgres   # addons rename through the same command
lizard secrets set DATABASE_URL='${{main-db.DATABASE_URL}}' --service api

Использование дополнения

Ссылки на переменные дополнения можно использовать из любого сервиса. Ссылка разрешается во время развёртывания, поэтому сервис получает актуальные значения дополнения при следующем развёртывании:

lizard secrets set DATABASE_URL='${{postgres.DATABASE_URL}}' --service api
lizard redeploy --service api

Lizard также передаёт DATABASE_URL и REDIS_URL от каждого запущенного дополнения Postgres и Redis во все сервисы проекта с наименьшим приоритетом. Явная ссылка переопределяет их и позволяет выбрать конкретное дополнение. Для сервисов в одном проекте лучше использовать приватный URL:

lizard secrets set DATABASE_URL='${{postgres.DATABASE_PRIVATE_URL}}' --service api

См. Ограничение области действия секретов.

Переменные по типам

ДополнениеПеременные
postgresDATABASE_URL, DATABASE_PRIVATE_URL, PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE, POSTGRES_USER, POSTGRES_DB, POSTGRES_PASSWORD
redisREDIS_URL, REDIS_PRIVATE_URL
s3S3_ENDPOINT, S3_DEFAULT_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_REGION

DATABASE_URL и REDIS_URL используют публичную конечную точку. DATABASE_PRIVATE_URL и REDIS_PRIVATE_URL используют <name>.lizard.internal в приватной сети и работают только из сервисов того же проекта.

Просмотр данных в панели управления

В панели управления есть браузер данных для каждого дополнения: редактор SQL и таблиц для Postgres, просмотр ключей для Redis и просмотр бакетов и объектов для S3. Вы сможете просматривать и изменять данные, не покидая Lizard.

Хранилище

Объём томов данных Postgres и Redis можно только увеличивать. Чтобы увеличить ёмкость, используйте:

lizard scale --service postgres --storage 8192

Руководства по типам

О том, зачем прототипу обычно нужны все три компонента сразу, см. явное описание данных и конфигурации.

Обновлено