Airflow 3.0中airflow users create命令失效,求FAB用户创建示例
Airflow 3.0 使用FAB Auth Manager创建用户
Airflow 3.0已移除原有的airflow users create命令,需通过Flask-AppBuilder(FAB)提供的工具创建用户,以下是两种常用方法:
方法一:使用FAB CLI命令
直接通过flask fab create-user命令创建,需确保已加载Airflow的运行环境(如激活虚拟环境、设置AIRFLOW_HOME变量):
flask fab create-user \ --username airflow \ --firstname airflow \ --lastname Admin \ --email airflow@example.com \ --role Admin \ --password admin123
- 必填参数说明:
--username:用户名--firstname:名--lastname:姓--email:邮箱--role:用户角色,需为Airflow内置角色(如Admin、User、Viewer)--password:登录密码
方法二:使用Python脚本批量/自定义创建
若需批量创建或自定义用户逻辑,可编写Python脚本操作FAB的ORM模型:
from airflow.configuration import conf from flask_appbuilder.security.sqla.models import User, Role from airflow.utils.session import create_session def create_fab_user(username, firstname, lastname, email, role_name, password): with create_session() as session: # 查询指定角色 role = session.query(Role).filter(Role.name == role_name).first() if not role: raise ValueError(f"角色 {role_name} 不存在") # 检查用户是否已存在 existing_user = session.query(User).filter(User.username == username).first() if existing_user: print(f"用户 {username} 已存在") return # 创建并保存新用户 new_user = User( username=username, first_name=firstname, last_name=lastname, email=email, role=role, active=True ) new_user.set_password(password) session.add(new_user) session.commit() print(f"用户 {username} 创建成功") # 调用函数创建示例用户 create_fab_user( username="airflow", firstname="airflow", lastname="Admin", email="airflow@example.com", role_name="Admin", password="admin123" )
执行脚本:
python create_user.py
运行前需确保脚本在Airflow环境中执行(如激活虚拟环境)。
内容的提问来源于stack exchange,提问作者Shital
相关产品推荐
相关产品推荐

