Управляемые дополнения
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 apiLizard также передаёт DATABASE_URL и REDIS_URL от каждого запущенного дополнения Postgres и Redis во все сервисы проекта с наименьшим приоритетом. Явная ссылка переопределяет их и позволяет выбрать конкретное дополнение. Для сервисов в одном проекте лучше использовать приватный URL:
lizard secrets set DATABASE_URL='${{postgres.DATABASE_PRIVATE_URL}}' --service apiСм. Ограничение области действия секретов.
Переменные по типам
| Дополнение | Переменные |
|---|---|
| postgres | DATABASE_URL, DATABASE_PRIVATE_URL, PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE, POSTGRES_USER, POSTGRES_DB, POSTGRES_PASSWORD |
| redis | REDIS_URL, REDIS_PRIVATE_URL |
| s3 | S3_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Руководства по типам
О том, зачем прототипу обычно нужны все три компонента сразу, см. явное описание данных и конфигурации.
Обновлено