有人要求我为Airflow实施一些功能。但是,用户创建让我有些困惑。
我的示例
我设置了两个用户(person.a和person.b),它们都可以通过以下方式以Admin身份通过UI进行访问:
airflow create_user -r Admin -u person.a -e person.a@email.com -p "mypwd" -f person -l a
那很好。但是,我需要用户能够发布到端点以触发DAG(如下所示):
'http://{airflow_ip}:8080/api/experimental/dags/{airflow_dag}/dag_runs'
但是那些用户无法执行操作,他们会收到403禁止错误。我 可以 创建一个可以通过执行以下操作在该端点上触发dag的用户:
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = '${airflow_api_username}'
user.email = '${airflow_api_email}'
user.password = '${airflow_api_password}'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
有人可以澄清差异/工作原理吗?如果有更好的选择?最好我想用第一种方法创建所有用户。
先谢谢您。
版本:1.10.3