ПеременныеПерекрёстные ссылки между сервисами

Перекрёстные ссылки

Ссылки позволяют одному сервису или аддону читать значения другого без копирования учётных данных. Они хранят секреты в одном месте и автоматически их вращают.

Синтаксис

${{<name>.<KEY>}}
  • <name> — имя целевого сервиса или аддона (то, что показано в дашборде и используется в lizard add -n).
  • <KEY> — ключ в объединённом окружении цели.

Используйте их везде, где принимается значение — чаще всего в секрете:

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

Как они разрешаются

  • Ссылки разрешаются во время деплоя против объединённого окружения цели.
  • Они хранятся по ID, поэтому переименование цели позже не ломает ссылку.
  • Ссылка на отсутствующую цель или ключ разрешается в пустую строку — она не проваливает деплой.
  • Ошибку выдают только циклические ссылки.

Поскольку отсутствующий ключ молча становится пустым, всегда проверяйте, что потребитель действительно получил значение после настройки ссылки:

lizard ssh --service api -- env | grep DATABASE_URL

Если ссылка не отображается так, как ожидалось, см. Устранение неполадок → секрет или ссылка не отображается.

Типичные сценарии

Подключить аддон к нескольким сервисам — привяжите на каждом потребителе, чтобы вращение распространилось везде:

lizard secrets set REDIS_URL='${{redis.REDIS_URL}}' --service api
lizard secrets set REDIS_URL='${{redis.REDIS_URL}}' --service worker

Ссылаться на значение другого сервиса — например, делиться вычисленным URL или токеном:

lizard secrets set UPSTREAM_URL='${{api.LIZARD_PUBLIC_DOMAIN}}' --service web

Ссылаться на второй аддон того же типа — используйте его сгенерированное имя:

lizard secrets set CACHE_URL='${{redis-winter-otter.REDIS_URL}}' --service api

Почему не просто --global?

Размещение общего DSN в области проекта (--global) раскрывает его для каждого сервиса, включая те, которые ему не нужны. Ссылки дают тот же single-source-of-truth с вращением, сохраняя каждый секрет в области видимости только тех сервисов, которые его потребляют. См. Область видимости секретов.

См. также