【问题标题】:CSRF token to delete Airflow Dag in airflow UI using REST API callCSRF 令牌使用 REST API 调用删除气流 UI 中的 Airflow Dag
【发布时间】:2020-06-11 06:49:12
【问题描述】:

目的是通过 rest api 调用从 UI 中删除气流 dag。我尝试了api调用 .../delete?dag_id=<dag_id> ,这个休息调用失败,说 CSRF 令牌丢失。如何从气流服务器获取 CSRF 令牌?还是有更好的方法以自动方式从气流 UI 中删除 dag? (不是从气流 UI 中手动按下删除按钮)

【问题讨论】:

  • 嗨 - 你有没有找到答案/解决方法?谢谢!

标签: etl airflow csrf-token rest


【解决方案1】:

对于气流版本 >= 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 运行和数据。 确保先删除 dag .py 文件,否则 dag 将继续出现在气流 GUI 中。

【讨论】:

  • 这行得通,但我必须使用气流 delete_dag cli 命令,因为无论如何我必须运行 cli 命令来删除 .py 文件
  • 您也可以使用 cli 推荐。但是您要求使用 rest api 调用删除。 @HemanthKumar
  • 只有在底层 .py 文件被删除的情况下,使用其余的 api 才有效,否则 UI 仍然有条目,这就是我的意思。谢谢
  • 你说得对,它写在答案中。如果您认为正确,请标记为已接受的答案。
  • 堆栈溢出说我没有足够的声誉来做那个动作。我这边接受了这个答案。谢谢。
猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 2017-03-31
  • 2021-05-04
  • 1970-01-01
  • 2020-04-21
  • 2018-11-10
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多