Токен CSRF для удаления Airflow Dag в пользовательском интерфейсе воздушного потока с помощью вызова REST API

Цель состоит в том, чтобы удалить тег воздушного потока из пользовательского интерфейса с помощью вызова rest api. Я попробовал вызов api .../delete?dag_id=<dag_id>, этот вызов отдыха не работает, говоря, что токен CSRF отсутствует. Как получить токен CSRF с сервера воздушного потока? или есть лучший способ удалить даг из пользовательского интерфейса воздушного потока автоматическим способом? (не нажимая вручную кнопку удаления из пользовательского интерфейса воздушного потока)


person Hemanth Kumar    schedule 11.06.2020    source источник
comment
Привет, вы когда-нибудь находили ответ / обходной путь для этого? Спасибо!   -  person luisf    schedule 21.07.2020


Ответы (1)


для airflow vesrion ›= 1.10 вы можете использовать экспериментальный REST API

вот пример кода:

import requests
from urllib.parse import urljoin

def delete_dag(airflow_server_address ,dag_id):
    url = urljoin(airflow_server_address, '/api/experimental/dags/'+dag_id)
    requests.delete(url)

это удалит прогоны дага и данные из базы данных. сначала убедитесь, что вы удалили файл dag .py, иначе dag продолжит отображаться в графическом интерфейсе воздушного потока.

person Oded Rozencweig    schedule 03.09.2020
comment
это работает, но мне пришлось использовать команду cli airflow delete_dag, так как в любом случае мне нужно запустить команду cli для удаления файла .py - person Hemanth Kumar; 07.09.2020
comment
вы также можете использовать команду cli commend. но вы попросили удалить с помощью rest api call. @HemanthKumar - person Oded Rozencweig; 08.09.2020
comment
Использование остального api работает только в том случае, если базовый файл .py удален, иначе пользовательский интерфейс все еще будет иметь запись, это то, что я имел в виду. Спасибо - person Hemanth Kumar; 13.09.2020
comment
ты прав, это написано в ответе. отметьте как принятый ответ, если считаете его правильным. - person Oded Rozencweig; 13.09.2020
comment
переполнение стека говорит, что у меня недостаточно репутации, чтобы выполнить это действие. этот ответ принят с моей стороны. Спасибо. - person Hemanth Kumar; 14.09.2020
comment
Привет, @Oded Rozencweig, я получаю сообщение об ошибке 404 для API удаления остатка, который вы предложили. Я использую версию 1.10.9. Я могу запустить другой Rest API, но не этот. Я что-то упускаю ? - person Hemanth Kumar; 08.03.2021