Создание кластера Apache Airflow™
Каждый кластер Managed Service for Apache Airflow™ состоит из набора компонентов Apache Airflow™, каждый из которых может быть представлен в нескольких экземплярах. Экземпляры могут находиться в разных зонах доступности.
Роли для создания кластера
Для создания кластера Managed Service for Apache Airflow™ вашему аккаунту в Yandex Cloud нужны роли:
- managed-airflow.editor — чтобы создать кластер;
- vpc.user — чтобы работать с сетью кластера;
- iam.serviceAccounts.user — чтобы привязать сервисный аккаунт к кластеру.
Сервисному аккаунту кластера должна быть назначена роль managed-airflow.integrationProvider
. Это даст кластеру нужные права для работы с пользовательскими ресурсами. Подробнее см. в разделе Имперсонация.
О назначении ролей читайте в документации Yandex Identity and Access Management.
Создать кластер
-
В консоли управления
выберите каталог, в котором нужно создать кластер. -
Выберите сервис Managed Service for Apache Airflow™.
-
Нажмите кнопку Создать кластер.
-
В блоке Базовые параметры:
- Введите имя кластера. Имя должно быть уникальным в рамках каталога.
- (Опционально) Введите описание кластера.
- (Опционально) Создайте метки:
- Нажмите кнопку Добавить метку.
- Введите метку в формате
ключ: значение
. - Нажмите Enter.
-
В блоке Настройки доступа:
-
Задайте пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:
- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
Примечание
Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.
-
Выберите существующий сервисный аккаунт или создайте новый.
-
-
В блоке Сетевые настройки выберите:
-
Зоны доступности для размещения кластера.
-
Облачную сеть.
-
Подсеть в каждой из выбранных зон доступности.
Yandex Cloud управляет компонентами кластера Managed Service for Apache Airflow™ в дополнительной служебной подсети. Убедитесь, что диапазон IP-адресов выбранных вами подсетей не пересекается с диапазоном адресов
10.248.0.0/13
служебной подсети. Иначе возникнет ошибка при создании кластера. -
Группу безопасности для сетевого трафика кластера.
Настройки группы безопасности не влияют на доступ к веб-интерфейсу Apache Airflow™.
-
-
Задайте количество экземпляров и ресурсы для компонентов Managed Service for Apache Airflow™:
-
веб-сервера;
-
планировщика;
-
воркеров;
Примечание
Если очередь задач пуста, количество воркеров будет равно минимальному значению. При появлении задач количество воркеров будет увеличиваться вплоть до максимального значения.
-
(опционально) службы Triggerer.
-
-
(Опционально) В блоке Зависимости укажите названия pip- и deb-пакетов, чтобы установить в кластер дополнительные библиотеки и приложения для запуска DAG-файлов.
Чтобы указать более одного пакета, нажмите кнопку Добавить.
При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
pandas==2.0.2 scikit-learn>=1.0.0 clickhouse-driver~=0.2.0
Формат названия пакета и выбор версии определены командой установки:
pip install
— для pip-пакетов,apt install
— для deb-пакетов.Важно
Для установки pip- и deb-пакетов из публичных репозиториев необходимо в блоке Сетевые настройки указать сеть с настроенным NAT в интернет.
-
В блоке Хранилище DAG-файлов выберите существующий бакет или создайте новый. В этом бакете будут храниться DAG-файлы.
Сервисному аккаунту кластера должно быть предоставлено разрешение
READ
для этого бакета. -
(Опционально) В блоке Дополнительные настройки включите защиту от удаления кластера.
-
(Опционально) В блоке Конфигурация Airflow:
-
Задайте дополнительные свойства Apache Airflow™
, например: ключ —api.maximum_page_limit
, значение —150
.Заполните поля вручную или загрузите конфигурацию из файла (см. пример конфигурационного файла
). -
Включите опцию Использовать Lockbox Secret Backend, чтобы использовать секреты в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™.
Чтобы извлечь нужную информацию из секрета, сервисный аккаунт кластера должен иметь роль
lockbox.payloadViewer
.Эту роль можно назначить как на уровне всего каталога, так и на уровне отдельного секрета.
-
-
(Опционально) В блоке Логирование включите запись логов. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Задайте параметры логирования:
-
В поле Назначение укажите, куда будут записываться логи:
- Каталог — выберите каталог. Логи будут записываться в лог-группу по умолчанию для этого каталога.
- Лог-группа — выберите пользовательскую лог-группу или создайте новую.
-
Выберите минимальный уровень логирования:
TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
илиFATAL
.
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать кластер Managed Service for Apache Airflow™:
-
Посмотрите описание команды CLI для создания кластера:
yc managed-airflow cluster create --help
-
Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):
yc managed-airflow cluster create \ --name <имя_кластера> \ --description <описание_кластера> \ --labels <список_меток> \ --admin-password <пароль_администратора> \ --service-account-id <идентификатор_сервисного_аккаунта> \ --subnet-ids <идентификаторы_подсетей> \ --security-group-ids <идентификаторы_групп_безопасности> \ --webserver count=<количество_экземпляров>,` `resource-preset-id=<идентификатор_ресурсов> \ --scheduler count=<количество_экземпляров>,` `resource-preset-id=<идентификатор_ресурсов> \ --worker min-count=<минимальное_количество_экземпляров>,` `max-count=<максимальное_количество_экземпляров>,` `resource-preset-id=<идентификатор_ресурсов> \ --triggerer count=<количество_экземпляров>,` `resource-preset-id=<идентификатор_ресурсов> \ --deb-packages <список_deb-пакетов> \ --pip-packages <список_pip-пакетов> \ --dags-bucket <имя_бакета> \ --deletion-protection \ --lockbox-secrets-backend \ --airflow-config <список_свойств> \ --log-enabled \ --log-folder-id <идентификатор_каталога> \ --log-min-level <уровень_логирования>
Где:
-
--name
— имя кластера. -
--description
— описание кластера. -
--labels
— список меток. Метки задаются в формате<ключ>=<значение>
. -
--admin-password
— пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
-
--service-account-id
— идентификатор сервисного аккаунта. -
--subnet-ids
— список идентификаторов подсетей. -
--security-group-ids
— список идентификаторов групп безопасности. -
--webserver
,--scheduler
,--worker
,--triggerer
— конфигурация компонентов Managed Service for Apache Airflow™:-
count
— количество экземпляров в кластере для веб-сервера, планировщика и триггера. -
min-count
,max-count
— минимальное и максимальное количество экземпляров в кластере для воркера. -
resource-preset-id
— идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и триггера. Возможные значения:c1-m4
— 1 vCPU, 4 ГБ RAM.c2-m8
— 2 vCPU, 8 ГБ RAM.c4-m16
— 4 vCPU, 16 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.
-
-
--deb-packages
,--pip-packages
— списки deb- и pip-пакетов, которые позволяют установить в кластер дополнительные библиотеки и приложения для запуска DAG-файлов.При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
--pip-packages "pandas==2.0.2,scikit-learn>=1.0.0,clickhouse-driver~=0.2.0"
Формат названия пакета и выбор версии определены командой установки:
pip install
— для pip-пакетов,apt install
— для deb-пакетов. -
--dags-bucket
— имя бакета, в котором будут храниться DAG-файлы. -
--deletion-protection
— включает защиту кластера от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
--lockbox-secrets-backend
— включает использование секретов в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™. -
--airflow-config
— дополнительные свойства Apache Airflow™ . Задаются в формате<раздел_конфигурации>.<ключ>=<значение>
, например:--airflow-config core.load_examples=False
-
Параметры логирования:
-
--log-enabled
— включает логирование. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. -
--log-folder-id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
--log-group-id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
--log-folder-id
либо--log-group-id
. -
--log-min-level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
иFATAL
.
Вы можете указать только один из параметров:
--log-folder-id
или--log-group-id
. -
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать кластер Managed Service for Apache Airflow™:
-
Опишите в конфигурационном файле создаваемые ресурсы:
-
Кластер Managed Service for Apache Airflow™ — описание кластера.
-
Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.
-
Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.
Пример структуры конфигурационного файла:
resource "yandex_airflow_cluster" "<имя_кластера>" { name = "<имя_кластера>" description = "<описание_кластера>" labels = { <список_меток> } admin_password = "<пароль_администратора>" service_account_id = "<идентификатор_сервисного_аккаунта>" subnet_ids = ["<список_идентификаторов_подсетей>"] security_group_ids = ["<список_идентификаторов_групп_безопасности>"] webserver = { count = <количество_экземпляров> resource_preset_id = "<идентификатор_ресурсов>" } scheduler = { count = <количество_экземпляров> resource_preset_id = "<идентификатор_ресурсов>" } worker = { min_count = <минимальное_количество_экземпляров> max_count = <максимальное_количество_экземпляров> resource_preset_id = "<идентификатор_ресурсов>" } triggerer = { count = <количество_экземпляров> resource_preset_id = "<идентификатор_ресурсов>" } pip_packages = ["список_pip-пакетов"] deb_packages = ["список_deb-пакетов"] code_sync = { s3 = { bucket = "<имя_бакета>" } } deletion_protection = <защита_от_удаления> lockbox_secrets_backend = { enabled = <использование_секретов> } airflow_config = { <раздел_конфигурации> = { <ключ> = "<значение>" } } logging = { enabled = <использование_логирования> folder_id = "<идентификатор_каталога>" min_level = "<уровень_логирования>" } } resource "yandex_vpc_network" "<имя_сети>" { name = "<имя_сети>" } resource "yandex_vpc_subnet" "<имя_подсети>" { name = "<имя_подсети>" zone = "<зона_доступности>" network_id = "<идентификатор_сети>" v4_cidr_blocks = ["<диапазон>"] }
Где:
-
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате<ключ> = "<значение>"
. -
admin_password
— пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
-
service_account_id
— идентификатор сервисного аккаунта. -
subnet_ids
— список идентификаторов подсетей. -
security_group_ids
— список идентификаторов групп безопасности. -
webserver
,scheduler
,worker
,triggerer
— конфигурация компонентов Managed Service for Apache Airflow™:-
count
— количество экземпляров в кластере для веб-сервера, планировщика и триггера. -
min_count
,max_count
— минимальное и максимальное количество экземпляров в кластере для воркера. -
resource_preset_id
— идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и триггера. Возможные значения:c1-m4
— 1 vCPU, 4 ГБ RAM.c2-m8
— 2 vCPU, 8 ГБ RAM.c4-m16
— 4 vCPU, 16 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.
-
-
deb_packages
,pip_packages
— списки deb- и pip-пакетов, которые позволяют установить в кластер дополнительные библиотеки и приложения для запуска DAG-файлов.При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
pip_packages = ["pandas==2.0.2","scikit-learn>=1.0.0","clickhouse-driver~=0.2.0"]
Формат названия пакета и выбор версии определены командой установки:
pip install
— для pip-пакетов,apt install
— для deb-пакетов. -
code_sync.s3.bucket
— имя бакета, в котором будут храниться DAG-файлы. -
deletion_protection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
lockbox_secrets_backend.enabled
— включает использование секретов в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™. Возможные значения:true
илиfalse
. -
airflow_config
— дополнительные свойства Apache Airflow™ , например: раздел конфигурации —core
, ключ —load_examples
, значение —False
. -
logging
— параметры логирования:-
enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
folder_id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
log_group_id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folder_id
либоlog_group_id
. -
min_level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
иFATAL
.
Вы можете указать только один из параметров:
folder_id
илиlog_group_id
. -
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Создайте кластер Managed Service for Apache Airflow™.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
Подробнее см. в документации провайдера Terraform
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "config": { "versionId": "<версия_Apache Airflow™>", "airflow": { "config": { <список_свойств> } }, "webserver": { "count": "<количество_экземпляров>", "resources": { "resourcePresetId": "<идентификатор_ресурсов>" } }, "scheduler": { "count": "<количество_экземпляров>", "resources": { "resourcePresetId": "<идентификатор_ресурсов>" } }, "triggerer": { "count": "<количество_экземпляров>", "resources": { "resourcePresetId": "<идентификатор_ресурсов>" } }, "worker": { "minCount": "<минимальное_количество_экземпляров>", "maxCount": "<максимальное_количество_экземпляров>", "resources": { "resourcePresetId": "<идентификатор_ресурсов>" } }, "dependencies": { "pipPackages": [ <список_pip-пакетов> ], "debPackages": [ <список_deb-пакетов> ] }, "lockbox": { "enabled": <использование_логирования> } }, "network": { "subnetIds": [ <список_идентификаторов_подсетей> ], "securityGroupIds": [ <список_идентификаторов_групп_безопасности> ] }, "codeSync": { "s3": { "bucket": "<имя_бакета>" } }, "deletionProtection": <защита_от_удаления>, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "minLevel": "<уровень_логирования>", "folderId": "<идентификатор_каталога>" }, "adminPassword": "<пароль_администратора>" }
Где:
-
folderId
— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
config
— конфигурация кластера:-
versionId
— версия Apache Airflow™. -
airflow.config
— дополнительные свойства Apache Airflow™ . Задаются в формате"<раздел_конфигурации>.<ключ>": "<значение>"
, например:"airflow": { "config": { "core.load_examples": "False" } }
-
webserver
,scheduler
,triggerer
,worker
— конфигурация компонентов Managed Service for Apache Airflow™:-
count
— количество экземпляров в кластере для веб-сервера, планировщика и триггера. -
minCount
,maxCount
— минимальное и максимальное количество экземпляров в кластере для воркера. -
resources.resourcePresetId
— идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и триггера. Возможные значения:c1-m4
— 1 vCPU, 4 ГБ RAM.c2-m8
— 2 vCPU, 8 ГБ RAM.c4-m16
— 4 vCPU, 16 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.
-
-
dependencies
— списки пакетов, которые позволяют установить в кластер дополнительные библиотеки и приложения для запуска DAG-файлов:pipPackages
— список pip-пакетов.debPackages
— список deb-пакетов.
При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
"dependencies": { "pipPackages": [ "pandas==2.0.2", "scikit-learn>=1.0.0", "clickhouse-driver~=0.2.0" ] }
Формат названия пакета и выбор версии определены командой установки:
pip install
— для pip-пакетов,apt install
— для deb-пакетов. -
lockbox.enabled
— позволяет использовать секреты в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™. Возможные значения:true
илиfalse
.
-
-
network
— сетевые настройки:subnetIds
— список идентификаторов подсетей.securityGroupIds
— список идентификаторов групп безопасности.
-
codeSync.s3.bucket
— имя бакета, в котором будут храниться DAG-файлы. -
deletionProtection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
serviceAccountId
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:-
enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
minLevel
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
. -
folderId
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
logGroupId
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folderId
либоlogGroupId
.
-
-
adminPassword
— пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
Примечание
Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.
-
-
Воспользуйтесь методом Cluster.create и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://airflow.api.cloud.yandex.net/managed-airflow/v1/clusters' --data '@body.json'
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "config": { "version_id": "<версия_Apache Airflow™>", "airflow": { "config": { <список_свойств> } }, "webserver": { "count": "<количество_экземпляров>", "resources": { "resource_preset_id": "<идентификатор_ресурсов>" } }, "scheduler": { "count": "<количество_экземпляров>", "resources": { "resource_preset_id": "<идентификатор_ресурсов>" } }, "triggerer": { "count": "<количество_экземпляров>", "resources": { "resource_preset_id": "<идентификатор_ресурсов>" } }, "worker": { "min_count": "<минимальное_количество_экземпляров>", "max_count": "<максимальное_количество_экземпляров>", "resources": { "resource_preset_id": "<идентификатор_ресурсов>" } }, "dependencies": { "pip_packages": [ <список_pip-пакетов> ], "deb_packages": [ <список_deb-пакетов> ] }, "lockbox": { "enabled": <использование_логирования> } }, "network": { "subnet_ids": [ <список_идентификаторов_подсетей> ], "security_group_ids": [ <список_идентификаторов_групп_безопасности> ] }, "code_sync": { "s3": { "bucket": "<имя_бакета>" } }, "deletion_protection": <защита_от_удаления>, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "min_level": "<уровень_логирования>", "folder_id": "<идентификатор_каталога>" }, "admin_password": "<пароль_администратора>" }
Где:
-
folder_id
— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
config
— конфигурация кластера:-
version_id
— версия Apache Airflow™. -
airflow.config
— дополнительные свойства Apache Airflow™ . Задаются в формате"<раздел_конфигурации>.<ключ>": "<значение>"
, например:"airflow": { "config": { "core.load_examples": "False" } }
-
webserver
,scheduler
,triggerer
,worker
— конфигурация компонентов Managed Service for Apache Airflow™:-
count
— количество экземпляров в кластере для веб-сервера, планировщика и триггера. -
min_count
,max_count
— минимальное и максимальное количество экземпляров в кластере для воркера. -
resources.resource_preset_id
— идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и триггера. Возможные значения:c1-m4
— 1 vCPU, 4 ГБ RAM.c2-m8
— 2 vCPU, 8 ГБ RAM.c4-m16
— 4 vCPU, 16 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.
-
-
dependencies
— списки пакетов, которые позволяют установить в кластер дополнительные библиотеки и приложения для запуска DAG-файлов:pip_packages
— список pip-пакетов.deb_packages
— список deb-пакетов.
При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
"dependencies": { "pip_packages": [ "pandas==2.0.2", "scikit-learn>=1.0.0", "clickhouse-driver~=0.2.0" ] }
Формат названия пакета и выбор версии определены командой установки:
pip install
— для pip-пакетов,apt install
— для deb-пакетов. -
lockbox.enabled
— позволяет использовать секреты в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™. Возможные значения:true
илиfalse
.
-
-
network
— сетевые настройки:subnet_ids
— список идентификаторов подсетей.security_group_ids
— список идентификаторов групп безопасности.
-
code_sync.s3.bucket
— имя бакета, в котором будут храниться DAG-файлы. -
deletion_protection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
service_account_id
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:-
enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
min_level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
. -
folder_id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
log_group_id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folder_id
либоlog_group_id
.
-
-
admin_password
— пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
Примечание
Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.
-
-
Воспользуйтесь вызовом ClusterService/Create и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/airflow/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ airflow.api.cloud.yandex.net:443 \ yandex.cloud.airflow.v1.ClusterService.Create \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.