Настройка аутентификации для неинтерактивных сред
В неинтерактивной среде dbt работает без участия человека, который мог бы пройти аутентификацию вручную — например, в конвейерах CI/CD (таких как GitHub Actions, GitLab CI и Jenkins) и инструментах оркестрации в производственной среде (таких как Airflow и Prefect). В этих средах аутентификация через браузер невозможна. Вместо этого dbt State проходит аутентификацию с помощью учётных данных, переданных через переменные окружения, что позволяет продолжать кеширование состояния и оптимизацию сборок.
dbt State автоматически определяет, что работает в неинтерактивной среде. Если действительные учётные данные не предоставлены, dbt State отключается и выводит предупреждение, позволяя вашим командам dbt продолжить работу без кеширования.
Для запуска dbt в неинтерактивной среде требуется токен служебной учётной записи для аутентификации. Для создания служебного токена необходима учётная запись dbt platform; если у вас её ещё нет, обратитесь к разделу Настройка dbt State, чтобы создать бесплатную учётную запись, прежде чем продолжить.
Если вы ранее зарегистрировались в dbt State через отдельное приложение (app.state.dbt.com) и ещё не перешли на dbt platform, обратитесь к разделу Учётные данные клиента OAuth.
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть:
- Учётная запись dbt platform.
- Права Owner или Account Admin для создания служебного токена.
- Установленный и настроенный dbt State. Дополнительную информацию см. в разделе Настройка dbt State.
Создание служебного токена
Чтобы создать токен служебной учётной записи в dbt platform, обратитесь к разделу Создание токенов служебных учётных записей. При добавлении разрешений для токена назначьте хотя бы одно из следующих:
- Account Admin
Следующие разрешения доступны только на тарифных планах Enterprise:
- Owner
- Job Admin
- Job Creator
- Job Runner (рекомендуется; предоставляет минимальные права доступа, необходимые для dbt State)
- Developer
Настройка аутентификации
Задайте следующие переменные окружения в своей среде оркестрации:
DBT_CLOUD_TOKEN=YOUR_SERVICE_TOKEN
DBT_CLOUD_ACCOUNT_HOST=YOUR_ACCOUNT_HOST
DBT_CLOUD_ACCOUNT_ID=YOUR_ACCOUNT_ID
Замените YOUR_SERVICE_TOKEN своим служебным токеном, YOUR_ACCOUNT_HOST — хостом вашей учётной записи (например, abc123.us1.dbt.com), а YOUR_ACCOUNT_ID — числовым идентификатором вашей учётной записи. Перейдите в Account settings > Account, чтобы найти идентификатор и хост учётной записи (имя хоста из поля Access URL).
Требования к сети
Если ваша сеть или среда ограничивает исходящий трафик, разрешите доступ к следующим URL-адресам, чтобы dbt State мог проходить аутентификацию и взаимодействовать с dbt platform:
| URL | Описание |
|---|---|
auth.state.dbt.com | Аутентификация dbt State |
api.state.dbt.com | API dbt State |
abc123.us1.dbt.com | Ваш URL-адрес доступа к dbt platform (замените URL-адресом доступа вашей учётной записи) |
После настройки аутентификации убедитесь, что dbt State активен.
Проверка активности dbt State
-
Запустите любое задание преобразования dbt в своей среде оркестрации.
-
Проверьте вывод журнала. Вы должны увидеть сообщение, подобное приведённому ниже, а затем статус конкретного шага dbt State:
dbt State adapter: dbt-state v2.10.1 is enabled