Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Apache Airflow™
  • Начало работы
    • Все инструкции
      • Информация об имеющихся кластерах
      • Создание кластера
      • Изменение кластера
      • Остановка и запуск кластера
      • Удаление кластера
    • Работа с интерфейсами Apache Airflow™
    • Передача логов Apache Airflow™ в Cloud Logging
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Роли для создания кластера
  • Создать кластер
  1. Пошаговые инструкции
  2. Кластеры
  3. Создание кластера

Создание кластера Apache Airflow™

Статья создана
Yandex Cloud
Улучшена
Обновлена 30 апреля 2025 г.
  • Роли для создания кластера
  • Создать кластер

Каждый кластер 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.

Создать кластерСоздать кластер

Консоль управления
CLI
Terraform
REST API
gRPC API

Смотреть видео на YouTube.

  1. В консоли управления выберите каталог, в котором нужно создать кластер.

  2. Выберите сервис Managed Service for Apache Airflow™.

  3. Нажмите кнопку Создать кластер.

  4. В блоке Базовые параметры:

    1. Введите имя кластера. Имя должно быть уникальным в рамках каталога.
    2. (Опционально) Введите описание кластера.
    3. (Опционально) Создайте метки:
      1. Нажмите кнопку Добавить метку.
      2. Введите метку в формате ключ: значение.
      3. Нажмите Enter.
  5. В блоке Настройки доступа:

    • Задайте пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:

      • одну заглавную букву;
      • одну строчную букву;
      • одну цифру;
      • один специальный символ.

      Примечание

      Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.

    • Выберите существующий сервисный аккаунт или создайте новый.

      Сервисному аккаунту должна быть назначена роль managed-airflow.integrationProvider.

  6. В блоке Сетевые настройки выберите:

    • Зоны доступности для размещения кластера.

    • Облачную сеть.

    • Подсеть в каждой из выбранных зон доступности.

      Чтобы только кластер Apache Airflow™ мог подключаться к вашим ресурсам, создайте для кластера отдельные подсети и не размещайте в них какие-либо другие ресурсы.

      Убедитесь, что выполняются следующие условия для подсетей:

      • Диапазон IP-адресов каждой подсети в сети кластера (включая подсети, не назначенные кластеру) не пересекается с диапазоном адресов 10.248.0.0/13 служебной сети.
      • Диапазон каждой подсети кластера включает не менее 2 × N свободных IP-адресов, где N — это суммарное количество экземпляров всех компонентов: веб-сервера, планировщика, воркеров и службы Triggerer.

      Подробнее см. в разделе Требования к подсетям кластера.

    • Группу безопасности для сетевого трафика кластера.

      Настройки группы безопасности не влияют на доступ к веб-интерфейсу Apache Airflow™.

  7. Задайте количество экземпляров и конфигурацию вычислительных ресурсов для компонентов Managed Service for Apache Airflow™:

    • веб-сервера;

    • планировщика;

    • воркеров;

      Примечание

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

    • (опционально) службы Triggerer.

  8. (Опционально) В блоке Зависимости укажите названия 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 в интернет.

  9. В блоке Хранилище DAG-файлов выберите существующий бакет или создайте новый. В этом бакете будут храниться DAG-файлы.

    Сервисному аккаунту кластера должно быть предоставлено разрешение READ для этого бакета.

  10. (Опционально) В блоке Дополнительные настройки включите защиту от удаления кластера.

  11. (Опционально) В блоке Конфигурация Airflow:

    • Задайте дополнительные свойства Apache Airflow™, например: ключ — api.maximum_page_limit, значение — 150.

      Заполните поля вручную или загрузите конфигурацию из файла (см. пример конфигурационного файла).

    • Включите опцию Использовать Lockbox Secret Backend, чтобы использовать секреты в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™.

      Чтобы извлечь нужную информацию из секрета, сервисный аккаунт кластера должен иметь роль lockbox.payloadViewer.

      Эту роль можно назначить как на уровне всего каталога, так и на уровне отдельного секрета.

  12. (Опционально) В блоке Логирование включите запись логов. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Задайте параметры логирования:

    • В поле Назначение укажите, куда будут записываться логи:

      • Каталог — выберите каталог. Логи будут записываться в лог-группу по умолчанию для этого каталога.
      • Лог-группа — выберите пользовательскую лог-группу или создайте новую.
    • Выберите минимальный уровень логирования: TRACE, DEBUG, INFO (значение по умолчанию), WARN, ERROR или FATAL.

  13. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать кластер Managed Service for Apache Airflow™:

  1. Посмотрите описание команды CLI для создания кластера:

    yc managed-airflow cluster create --help
    
  2. Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):

    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 — список идентификаторов подсетей.

      Чтобы только кластер Apache Airflow™ мог подключаться к вашим ресурсам, создайте для кластера отдельные подсети и не размещайте в них какие-либо другие ресурсы.

      Убедитесь, что выполняются следующие условия для подсетей:

      • Диапазон IP-адресов каждой подсети в сети кластера (включая подсети, не назначенные кластеру) не пересекается с диапазоном адресов 10.248.0.0/13 служебной сети.
      • Диапазон каждой подсети кластера включает не менее 2 × N свободных IP-адресов, где N — это суммарное количество экземпляров всех компонентов: веб-сервера, планировщика, воркеров и службы Triggerer.

      Подробнее см. в разделе Требования к подсетям кластера.

    • --security-group-ids — список идентификаторов групп безопасности.

    • --webserver, --scheduler, --worker, --triggerer — конфигурация компонентов Managed Service for Apache Airflow™:

      • count — количество экземпляров в кластере для веб-сервера, планировщика и Triggerer.

      • min-count, max-count — минимальное и максимальное количество экземпляров в кластере для воркера.

      • resource-preset-id — идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и службы Triggerer. Возможные значения:

        • c1-m2 — 1 vCPU, 2 ГБ RAM.
        • c1-m4 — 1 vCPU, 4 ГБ RAM.
        • c2-m4 — 2 vCPU, 4 ГБ RAM.
        • c2-m8 — 2 vCPU, 8 ГБ RAM.
        • c4-m8 — 4 vCPU, 8 ГБ RAM.
        • c4-m16 — 4 vCPU, 16 ГБ RAM.
        • c8-m16 — 8 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 позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы создать кластер Managed Service for Apache Airflow™:

  1. Опишите в конфигурационном файле создаваемые ресурсы:

    • Кластер 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 — список идентификаторов подсетей.

      Чтобы только кластер Apache Airflow™ мог подключаться к вашим ресурсам, создайте для кластера отдельные подсети и не размещайте в них какие-либо другие ресурсы.

      Убедитесь, что выполняются следующие условия для подсетей:

      • Диапазон IP-адресов каждой подсети в сети кластера (включая подсети, не назначенные кластеру) не пересекается с диапазоном адресов 10.248.0.0/13 служебной сети.
      • Диапазон каждой подсети кластера включает не менее 2 × N свободных IP-адресов, где N — это суммарное количество экземпляров всех компонентов: веб-сервера, планировщика, воркеров и службы Triggerer.

      Подробнее см. в разделе Требования к подсетям кластера.

    • security_group_ids — список идентификаторов групп безопасности.

    • webserver, scheduler, worker, triggerer — конфигурация компонентов Managed Service for Apache Airflow™:

      • count — количество экземпляров в кластере для веб-сервера, планировщика и Triggerer.

      • min_count, max_count — минимальное и максимальное количество экземпляров в кластере для воркера.

      • resource_preset_id — идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и Triggerer. Возможные значения:

        • c1-m2 — 1 vCPU, 2 ГБ RAM.
        • c1-m4 — 1 vCPU, 4 ГБ RAM.
        • c2-m4 — 2 vCPU, 4 ГБ RAM.
        • c2-m8 — 2 vCPU, 8 ГБ RAM.
        • c4-m8 — 4 vCPU, 8 ГБ RAM.
        • c4-m16 — 4 vCPU, 16 ГБ RAM.
        • c8-m16 — 8 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.

  2. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  3. Создайте кластер Managed Service for Apache Airflow™.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Подробнее см. в документации провайдера Terraform.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Создайте файл 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 — количество экземпляров в кластере для веб-сервера, планировщика и Triggerer.

        • minCount, maxCount — минимальное и максимальное количество экземпляров в кластере для воркера.

        • resources.resourcePresetId — идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и Triggerer. Возможные значения:

          • c1-m2 — 1 vCPU, 2 ГБ RAM.
          • c1-m4 — 1 vCPU, 4 ГБ RAM.
          • c2-m4 — 2 vCPU, 4 ГБ RAM.
          • c2-m8 — 2 vCPU, 8 ГБ RAM.
          • c4-m8 — 4 vCPU, 8 ГБ RAM.
          • c4-m16 — 4 vCPU, 16 ГБ RAM.
          • c8-m16 — 8 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 — список идентификаторов подсетей.

        Чтобы только кластер Apache Airflow™ мог подключаться к вашим ресурсам, создайте для кластера отдельные подсети и не размещайте в них какие-либо другие ресурсы.

        Убедитесь, что выполняются следующие условия для подсетей:

        • Диапазон IP-адресов каждой подсети в сети кластера (включая подсети, не назначенные кластеру) не пересекается с диапазоном адресов 10.248.0.0/13 служебной сети.
        • Диапазон каждой подсети кластера включает не менее 2 × N свободных IP-адресов, где N — это суммарное количество экземпляров всех компонентов: веб-сервера, планировщика, воркеров и службы Triggerer.

        Подробнее см. в разделе Требования к подсетям кластера.

      • 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 символов и содержать как минимум:

      • одну заглавную букву;
      • одну строчную букву;
      • одну цифру;
      • один специальный символ.

      Примечание

      Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.

  3. Воспользуйтесь методом 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'
    
  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Создайте файл 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 — количество экземпляров в кластере для веб-сервера, планировщика и Triggerer.

        • min_count, max_count — минимальное и максимальное количество экземпляров в кластере для воркера.

        • resources.resource_preset_id — идентификатор вычислительных ресурсов веб-сервера, планировщика, воркера и Triggerer. Возможные значения:

          • c1-m2 — 1 vCPU, 2 ГБ RAM.
          • c1-m4 — 1 vCPU, 4 ГБ RAM.
          • c2-m4 — 2 vCPU, 4 ГБ RAM.
          • c2-m8 — 2 vCPU, 8 ГБ RAM.
          • c4-m8 — 4 vCPU, 8 ГБ RAM.
          • c4-m16 — 4 vCPU, 16 ГБ RAM.
          • c8-m16 — 8 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 — список идентификаторов подсетей.

        Чтобы только кластер Apache Airflow™ мог подключаться к вашим ресурсам, создайте для кластера отдельные подсети и не размещайте в них какие-либо другие ресурсы.

        Убедитесь, что выполняются следующие условия для подсетей:

        • Диапазон IP-адресов каждой подсети в сети кластера (включая подсети, не назначенные кластеру) не пересекается с диапазоном адресов 10.248.0.0/13 служебной сети.
        • Диапазон каждой подсети кластера включает не менее 2 × N свободных IP-адресов, где N — это суммарное количество экземпляров всех компонентов: веб-сервера, планировщика, воркеров и службы Triggerer.

        Подробнее см. в разделе Требования к подсетям кластера.

      • 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 символов и содержать как минимум:

      • одну заглавную букву;
      • одну строчную букву;
      • одну цифру;
      • один специальный символ.

      Примечание

      Сохраните пароль локально или запомните его. Сервис не показывает пароли после создания.

  4. Воспользуйтесь вызовом 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
    
  5. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Информация об имеющихся кластерах
Следующая
Изменение кластера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»