如何对VSCode宏执行操作?实现Airflow调试自动获取DAG名称
如何在VSCode的launch.json中自动从文件名提取Airflow DAG名称?
可以实现。VSCode的调试变量支持正则替换表达式,完全可以基于你的文件名规则(DAG名称+_dag.py)自动提取DAG名,无需手动修改launch.json。
具体实现方案
- 先用
${fileBasenameNoExtension}变量获取当前打开文件的无后缀文件名:比如对于migrate_dtm_dag.py,该变量会返回migrate_dtm_dag。 - 给变量添加正则替换后缀,去掉末尾固定的
_dag,最终表达式为:${fileBasenameNoExtension/(_dag)$//}
示例launch.json配置片段
{ "version": "0.2.0", "configurations": [ { "name": "Airflow DAG 调试", "type": "python", "request": "launch", "program": "${workspaceFolder}/venv/bin/airflow", // 替换为你的airflow可执行文件路径 "args": [ "tasks", "test", "${fileBasenameNoExtension/(_dag)$//}", // 自动提取的DAG名称 "your_task_id", // 替换为你的任务ID "2024-01-01", "--local" ], "console": "integratedTerminal" } ] }
表达式细节说明
(_dag)$:正则匹配字符串末尾的_dag($表示匹配行尾,确保只移除最后面的_dag,避免误删名称中间的相同字符)- 第二个
/后留空,表示将匹配到的内容替换为空白,最终得到纯DAG名称。
只要你的DAG文件严格遵循[DAG名称]_dag.py的命名规则,打开对应文件启动调试时,VSCode会自动注入正确的DAG名称。
内容的提问来源于stack exchange,提问作者Imad
相关产品推荐
相关产品推荐

