使用 IDE 工具调试气流任务?

Mat*_*sen 9 python ide debugging pycharm airflow

我的气流 DAG 主要由 PythonOperators 组成,我想使用我的 Python IDE 调试工具来开发 Python“内部”​​气流。- 我依赖 Airflow 的数据库连接器,我认为将其“移出”用于开发的气流会很丑陋。

我一直在使用 Airflow,到目前为止只通过 CLI 实现了开发和调试。这开始变得令人厌烦。

有谁知道设置 PyCharm 或其他 IDE 的好方法,它使我能够在运行时使用 IDE 的调试工具集airflow test ..

Bli*_*izz 6

参加聚会可能有点晚,但也一直在寻找解决方案。希望能够尽可能接近“生产模式”调试代码(所以没有测试等)。

找到了“Python Debug Server”形式的解决方案。它以相反的方式工作:您的 IDE 会侦听并建立从远程脚本到您的编辑器的连接。

只需添加一个类型为“Python Debug Server”的新运行配置。你会看到一个屏幕,告诉你pip install pydevd-pycharm远程。在同一页面上,您可以填写本地 IP 和调试器应该可用的端口以及可选的路径映射。

之后,只需将建议的 2 行代码添加到您希望调试会话开始的位置。

运行配置以激活侦听器,如果一切顺利,您的编辑器应该会在settrace到达 -call的位置后立即中断。

气流远程调试

编辑/注意:如果您在编辑器中停止配置,airflow将继续执行任务,请务必意识到这一点。


Mat*_*sen 3

这可能有点像黑客,但我找到了一种设置 PyCharm 的方法:

  • 用于which airflow本地气流环境 - 在我的例子中只是一个 pipelinev
  • 在 PyCharm 中添加新的运行配置
  • 将 python“脚本路径”设置为所述气流脚本
  • 设置参数来测试任务:test dag_x task_y 2019-11-19

这仅通过SequentialExecutor进行了验证,这可能很重要。

很糟糕的是,我必须为每个新的调试/开发任务更改运行配置中的测试参数,但到目前为止,这对于在本地气流环境“内部”时设置断点和单步执行代码非常有用。