Сеть

Сетевое взаимодействие

В Lizard (lizard.build) сервисы одного проекта обращаются друг к другу по приватной сети по адресу <service>.lizard.internal, на любом порту и без публичного домена. Каждый веб-сервис также получает сгенерированный *.onlizard.com домен с автоматическим TLS в момент деплоя, а свой хостнейм можно подключить перед запуском для пользователей. Managed Postgres и Managed Redis входят в ту же приватную сеть. Перейти к разделам: приватная сеть, собственные домены или порты.

Сгенерированные домены

Сервису автоматически создается домен по умолчанию в формате <name>-<suffix>.onlizard.com. У более старых сервисов остается <words>.<region>.onlizard.com. Посмотреть его:

lizard domain                    # show the service's current domain
lizard domain generate           # claim a *.onlizard.com subdomain if the service has none

lizard domain generate возвращает уже существующий сгенерированный домен, если он есть, и завершается ошибкой, пока у сервиса есть собственный домен. Файлы, обслуживаемые через Managed Object Storage, используют шлюз с отдельным хостом: s3-eu-west-1.onlizard.com или s3-us-east-1.onlizard.com.

Подключение собственного домена

Передайте хостнейм как позиционный аргумент; отдельной подкоманды add нет:

lizard domain app.example.com --service web

Lizard вернет DNS-записи, которые нужно создать (CNAME для хостнейма и TXT для верификации). Добавьте их у своего DNS-провайдера.

Верификация

После распространения DNS активируйте домен:

lizard domain verify app.example.com --service web

Команда проверяет TXT запись и активирует домен. TLS подготавливается автоматически.

Удаление домена

lizard domain delete app.example.com --service web
lizard domain rm app.example.com --service web --yes   # alias, skip confirmation

Смена порта, который слушает сервис

Домены направляют трафик на порт контейнера сервиса. Если сервис слушает другой порт, измените порт контейнера и сделайте редеплой:

lizard port 8080 --service web
lizard redeploy --service web

Worker-сервисы

У сервисов в режиме worker (containerPort=0) может всё равно отображаться сгенерированный домен, но он ничего не обслуживает — слушателя и маршрута балансировщика нет. Не подключайте собственный домен к worker-сервису.

Приватная сеть

Сервисы одного проекта обращаются друг к другу по адресу <service>.lizard.internal на любом порту, который слушает сервис, без публичного домена. Хостнейм можно указать как ${{api.LIZARD_PRIVATE_DOMAIN}}. Managed Postgres и Managed Redis в той же сети предоставляют DATABASE_PRIVATE_URL и REDIS_PRIVATE_URL; см. строку подключения к Postgres. Эти имена разрешаются только внутри проекта, и сервисы из других проектов не могут обратиться по этим адресам. Трафик не выходит из сети Lizard, поэтому между сервисами можно использовать обычный http://.

lizard secrets set API_URL='http://${{api.LIZARD_PRIVATE_DOMAIN}}:8080' --service web

Управление в дашборде

Откройте сервис в дашборде (lizard open) и перейдите в Settings → Networking. Там показан статус верификации и DNS для каждого домена, а также можно добавлять и удалять хостнеймы.

См. также

  • lizard domain — полная справка по командам.
  • Регионы — размещение сервисов и аддонов в одном регионе для низкой задержки.
  • От прототипа к SaaS, за который платят — где собственный домен стоит среди прочих вещей, которые всё ещё нужны сгенерированному приложению.

Обновлено