【问题标题】:How to capture user who triggered Airflow DAG如何捕获触发 Airflow DAG 的用户
【发布时间】:2020-05-25 16:53:13
【问题描述】:

我已经在 docker-compose 文件中启用了 RBAC 作为环境变量。

- AIRFLOW__WEBSERVER__RBAC=True

我想在我的 dag 文件中捕获启动 dag 的用户。

我尝试使用from flask_login import current_user。但是,我将 current_user 的值设为 None。

我可以知道如何使用 RBAC 捕获用户详细信息吗?

【问题讨论】:

    标签: airflow rbac


    【解决方案1】:

    根据Airflow 文档作为RBAC 安全模型的一部分,由Flask AppBuilder (FAB)处理:

    Airflow 使用flask_login 并在 airflow.default_login 模块。您可以更改内容并制作 PYTHONPATH 的一部分并将其配置为后端 airflow.cfg.

    Flask-login 模块提供用户管理操作,因此您可以在专用属性flask_login.current_user 中获取当前用户,添加 一些额外的字段,如#3438 拉取请求中所述:

    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 获取用户登录信息。

    【讨论】:

    • 这在 Airflow 2.1.0 中不再起作用。 AttributeError: 'NoneType' object has no attribute 'user'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2020-08-14
    相关资源
    最近更新 更多