airflow - 如何捕获触发 Airflow DAG 的用户
问题描述
我在 docker-compose 文件中启用了 RBAC 作为环境变量。
- AIRFLOW__WEBSERVER__RBAC=True
我想捕获在我的 dag 文件中启动 dag 的用户。
我尝试使用from flask_login import current_user
. 但是,我得到的值为current_user
无。
我可以知道如何使用 RBAC 捕获用户详细信息吗?
解决方案
根据作为由Flask AppBuilder (FAB)处理的RBAC安全模型的一部分的Airflow文档:
Airflow在模块中使用
flask_login
并公开了一组钩子 。airflow.default_login
您可以更改内容并使其成为 的一部分PYTHONPATH
并将其配置为airflow.cfg
.
Flask-login模块提供用户管理操作,因此您可以在专用属性flask_login.current_user中获取当前用户,添加一些额外的字段,如#3438 pull request 中所述:
if current_user and hasattr(current_user, 'user'):
user = current_user.user.username
elif current_user and hasattr(current_user, 'username'):
我想您可以使用它current_user.user.username
来获取用户登录信息。
推荐阅读
- python - Is there some way to find the intersect in multiple file names between multiple CSV headers?
- r - How to create a stand alone legend in R
- php - mb_detect_encoding does not detect SJIS-mac?
- r - 汇总数据框时获取“未使用的参数”
- html - HTML 电子邮件 - 电子邮件中的图像仅在某些设备上显示
- javascript - 如何按键将数组转换为对象?
- android - 如何在android中制作firebase实时数据库中的密钥?
- python - Python 将列表列表中的浮点数标准化为每个子列表中从 0.0(最小)到 1.0(最大)的范围
- firebase - BigQuery 获取来自 firebase 分析的 event_timestamp 和当前时间戳之间的差异
- javascript - 如果页面在滚动后重新加载,如何记住功能的位置?