Изменение кластера Apache Airflow™
После создания кластера вы можете изменить его основные и дополнительные настройки.
Чтобы изменить настройки кластера:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Apache Airflow™. -
Выберите кластер и нажмите кнопку Редактировать на панели сверху.
-
В блоке Базовые параметры измените имя и описание кластера, удалите или добавьте новые метки.
-
В блоке Настройки доступа выберите сервисный аккаунт или создайте новый с ролью
managed-airflow.integrationProvider. Это даст кластеру нужные права для работы с пользовательскими ресурсами. Подробнее см. в разделе Имперсонация.Для изменения сервисного аккаунта в кластере Managed Service for Apache Airflow™ назначьте вашему аккаунту в Yandex Cloud роль iam.serviceAccounts.user или выше.
Важно
Если для доступа к объектам из Object Storage в кластере уже используется сервисный аккаунт, то его смена может привести к недоступности этих объектов и нарушению работы кластера. Перед изменением настроек сервисного аккаунта убедитесь, что кластер не использует соответствующие объекты.
-
В блоке Сетевые настройки выберите группу безопасности для сетевого трафика кластера или создайте ее.
Настройки группы безопасности не влияют на доступ к веб-интерфейсу Apache Airflow™.
-
В блоках для настройки компонентов Managed Service for Apache Airflow™ — Конфигурация веб-сервера, Конфигурация планировщика, Конфигурация воркеров, Конфигурация DAG-процессора — укажите количество экземпляров и конфигурацию вычислительных ресурсов.
Важно
Компонент DAG-процессор доступен в версии Apache Airflow™ 3.0 и выше.
-
В блоке Конфигурация Triggerer включите или выключите службу Triggerer. Если служба включена, укажите количество экземпляров и ресурсов.
-
В блоке Зависимости удалите или добавьте названия pip- и deb-пакетов.
-
В блоке Хранилище 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.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы изменить настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-airflow cluster update --help -
Передайте список настроек, которые хотите изменить, в команде изменения кластера:
yc managed-airflow cluster update <имя_или_идентификатор_кластера> \ --new-name <новое_имя_кластера> \ --description <описание_кластера> \ --labels <список_меток> \ --service-account-id <идентификатор_сервисного_аккаунта> \ --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=<идентификатор_ресурсов> \ --dag-processor count=<количество_экземпляров>,` `resource-preset-id=<идентификатор_ресурсов> \ --deb-packages <список_deb-пакетов> \ --pip-packages <список_pip-пакетов> \ --dags-bucket <имя-бакета> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --deletion-protection \ --lockbox-secrets-backend \ --log-enabled \ --log-folder-id <идентификатор_каталога> \ --log-min-level <уровень_логирования>Где:
-
--name— имя кластера. -
--description— описание кластера. -
--labels— список меток. Метки задаются в формате<ключ>=<значение>. -
--admin-password— пароль пользователя-администратора. Пароль должен иметь длину не менее 8 символов и содержать как минимум:- одну заглавную букву;
- одну строчную букву;
- одну цифру;
- один специальный символ.
-
--service-account-id— идентификатор сервисного аккаунта.
-
--security-group-ids— список идентификаторов групп безопасности. -
--webserver,--scheduler,--worker,--triggerer,--dag-processor— конфигурация компонентов Managed Service for Apache Airflow™:-
count— количество экземпляров в кластере для веб-сервера, планировщика, DAG-процессора и Triggerer. -
min-count,max-count— минимальное и максимальное количество экземпляров в кластере для воркера. -
resource-preset-id— идентификатор вычислительных ресурсов веб-сервера, планировщика, DAG-процессора, воркера и службы 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.
Важно
Компонент DAG-процессор доступен в версии Apache Airflow™ 3.0 и выше.
-
-
--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-файлы. -
--maintenance-window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype— тип технического обслуживания:anytime(по умолчанию) — в любое время.weekly— по расписанию. Для этого значения дополнительно укажите:day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC: от1до24.
-
--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.
-
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
-
Чтобы изменить настройки кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Как создать такой файл, см. в разделе Создание кластера.
-
Чтобы изменить настройки кластера, измените значения нужных полей в конфигурационном файле.
Внимание
Не изменяйте имя кластера и пароль с помощью Terraform. Это приведет к удалению существующего кластера и созданию нового.
Пример структуры конфигурационного файла:
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 = "<идентификатор_ресурсов>" } dag_processor = { count = <количество_экземпляров> resource_preset_id = "<идентификатор_ресурсов>" } pip_packages = ["список_pip-пакетов"] deb_packages = ["список_deb-пакетов"] code_sync = { s3 = { bucket = "<имя_бакета>" } } maintenance_window = { type = "<тип_технического_обслуживания>" day = "<день_недели>" hour = <час_дня> } 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,dag_processor— конфигурация компонентов Managed Service for Apache Airflow™:-
count— количество экземпляров в кластере для веб-сервера, планировщика, DAG-процессора и Triggerer. -
min_count,max_count— минимальное и максимальное количество экземпляров в кластере для воркера. -
resource_preset_id— идентификатор вычислительных ресурсов веб-сервера, планировщика, DAG-процессора, воркера и 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.
Важно
Компонент DAG-процессор доступен в версии Apache Airflow™ 3.0 и выше.
-
-
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-файлы. -
maintenance_window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров):type— тип технического обслуживания. Принимает значения:ANYTIME— в любое время.WEEKLY— по расписанию.
day— день недели для типаWEEKLY:MON,TUE,WED,THU,FRI,SATилиSUN.hour— час дня по UTC для типаWEEKLY: от1до24.
-
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.
-
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Чтобы изменить настройки кластера:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "updateMask": "<список_изменяемых_параметров>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "configSpec": { "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": <использование_секретов> }, "dagProcessor": { "count": "<количество_экземпляров>", "resources": { "resourcePresetId": "<идентификатор_ресурсов>" } } }, "codeSync": { "s3": { "bucket": "<имя_бакета>" } }, "networkSpec": { "securityGroupIds": [ <список_идентификаторов_групп_безопасности> ] }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } }, "deletionProtection": <защита_от_удаления>, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "minLevel": "<уровень_логирования>", "folderId": "<идентификатор_каталога>" } }Где:
-
updateMask— перечень изменяемых параметров в одну строку через запятую.Важно
При изменении кластера будут переопределены все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask. -
name— имя кластера. -
description— описание кластера. -
labels— список меток. Метки задаются в формате"<ключ>": "<значение>". -
config— конфигурация кластера:-
airflow.config— дополнительные свойства Apache Airflow™ . Задаются в формате"<раздел_конфигурации>.<ключ>": "<значение>", например:"airflow": { "config": { "core.load_examples": "False" } } -
webserver,scheduler,triggerer,worker,dagProcessor— конфигурация компонентов Managed Service for Apache Airflow™:-
count— количество экземпляров в кластере для веб-сервера, планировщика, DAG-процессора и Triggerer. -
minCount,maxCount— минимальное и максимальное количество экземпляров в кластере для воркера. -
resources.resourcePresetId— идентификатор вычислительных ресурсов веб-сервера, планировщика, DAG-процессора, воркера и 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.
Важно
Компонент DAG-процессор доступен в версии Apache Airflow™ 3.0 и выше.
-
-
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.securityGroupIds— список идентификаторов групп безопасности. -
codeSync.s3.bucket— имя бакета, в котором будут храниться DAG-файлы. -
maintenanceWindow— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). ВmaintenanceWindowпередайте один из двух параметров:-
anytime— техническое обслуживание происходит в произвольное время. -
weeklyMaintenanceWindow— техническое обслуживание происходит раз в неделю, в указанное время:day— день недели в форматеDDD:MON,TUE,WED,THU,FRI,SATилиSUN;hour— час дня по UTC в форматеHH: от1до24.
-
-
deletionProtection— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:trueилиfalse.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
serviceAccountId— идентификатор сервисного аккаунта с рольюmanaged-airflow.integrationProvider. Это даст кластеру нужные права для работы с пользовательскими ресурсами. Подробнее см. в разделе Имперсонация.Для изменения сервисного аккаунта в кластере Managed Service for Apache Airflow™ назначьте вашему аккаунту в Yandex Cloud роль iam.serviceAccounts.user или выше.
Важно
Если для доступа к объектам из Object Storage в кластере уже используется сервисный аккаунт, то его смена может привести к недоступности этих объектов и нарушению работы кластера. Перед изменением настроек сервисного аккаунта убедитесь, что кластер не использует соответствующие объекты.
-
logging— параметры логирования:-
enabled— позволяет включить логирование. Логи, сгенерированные компонентами Apache Airflow™, будут отправляться в Yandex Cloud Logging. Возможные значения:trueилиfalse. -
minLevel— минимальный уровень логирования. Возможные значения:TRACE,DEBUG,INFO,WARN,ERRORиFATAL. -
folderId— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
logGroupId— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folderIdлибоlogGroupId.
-
-
-
Воспользуйтесь методом Cluster.Update и выполните запрос, например с помощью cURL
:curl \ --request PATCH \ --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и добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": "<список_изменяемых_параметров>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "config_spec": { "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": <использование_секретов> }, "dag_processor": { "count": "<количество_экземпляров>", "resources": { "resource_preset_id": "<идентификатор_ресурсов>" } } }, "code_sync": { "s3": { "bucket": "<имя_бакета>" } }, "network_spec": { "security_group_ids": [ <список_идентификаторов_групп_безопасности> ] }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } }, "deletion_protection": <защита_от_удаления>, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "min_level": "<уровень_логирования>", "folder_id": "<идентификатор_каталога>" } }Где:
-
cluster_id— идентификатор кластера. Его можно запросить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера будут переопределены все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
name— имя кластера. -
description— описание кластера. -
labels— список меток. Метки задаются в формате"<ключ>": "<значение>". -
config_spec— конфигурация кластера:-
airflow.config— дополнительные свойства Apache Airflow™ . Задаются в формате"<раздел_конфигурации>.<ключ>": "<значение>", например:"airflow": { "config": { "core.load_examples": "False" } } -
webserver,scheduler,triggerer,worker,dag_processor— конфигурация компонентов Managed Service for Apache Airflow™:-
count— количество экземпляров в кластере для веб-сервера, планировщика, DAG-процессора и Triggerer. -
min_count,max_count— минимальное и максимальное количество экземпляров в кластере для воркера. -
resources.resource_preset_id— идентификатор вычислительных ресурсов веб-сервера, планировщика, DAG-процессора, воркера и 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.
Важно
Компонент DAG-процессор доступен в версии Apache Airflow™ 3.0 и выше.
-
-
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_spec.security_group_ids— список идентификаторов групп безопасности. -
code_sync.s3.bucket— имя бакета, в котором будут храниться DAG-файлы. -
maintenance_window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Вmaintenance_windowпередайте один из двух параметров:-
anytime— техническое обслуживание происходит в произвольное время. -
weekly_maintenance_window— техническое обслуживание происходит раз в неделю, в указанное время:day— день недели в форматеDDD:MON,TUE,WED,THU,FRI,SATилиSUN;hour— час дня по UTC в форматеHH: от1до24.
-
-
deletion_protection— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:trueилиfalse.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
service_account_id— идентификатор сервисного аккаунта с рольюmanaged-airflow.integrationProvider. Это даст кластеру нужные права для работы с пользовательскими ресурсами. Подробнее см. в разделе Имперсонация.Для изменения сервисного аккаунта в кластере Managed Service for Apache Airflow™ назначьте вашему аккаунту в Yandex Cloud роль iam.serviceAccounts.user или выше.
Важно
Если для доступа к объектам из Object Storage в кластере уже используется сервисный аккаунт, то его смена может привести к недоступности этих объектов и нарушению работы кластера. Перед изменением настроек сервисного аккаунта убедитесь, что кластер не использует соответствующие объекты.
-
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.
-
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью 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.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.